大家好!今天我们来聊聊如何在MetaTrader 4(MT4)中使用指标来评估交易策略。
很多交易者常常希望能用可视化的方式来发现某个交易策略的缺陷。如果能够同时看到客观的交易统计数据,那就更完美了!
在MT4中虽然有回测工具,但每次修改交易系统(EA)后,进行可视化回测的过程非常耗时。而且,它的可视化能力也相对有限,特别是对于多货币策略的测试,效率更是低下。
为了应对这些问题,我开发了这个开源指标,旨在帮助大家更直观地测试交易策略。虽然不可能做到完全通用,但当前的框架可以轻松地根据具体需求进行修改和扩展(例如多货币策略)。

在这个指标中,我们特别关注了点差管理。该指标在计算时考虑了实际交易中的点差,这与MT4的回测器一致。如果你对指标进行了修改,一定要详细研究点差管理,否则可能会在M1时间框架上看到不错的策略结果,但在实际交易中却可能会遭遇惨败。:-)
为了演示这个策略测试指标,我还附上了一个简单交易策略的指标。该策略的规则基于移动平均线交叉与价格行为的结合(这样可以在交叉之前就下单,消除滞后)。此外,还包含了退出策略(使用相反信号和慢速移动平均线交叉的反向方式),以及通过修改后的吊灯止损策略来处理止损。这一指标提供了一个可以根据具体需求扩展的示例,有些人甚至觉得它足够好用于手动交易。
整个系统背后的理念
该指标系统采用模块化设计。首先,我们需要将交易策略实现为一个交易指标,目前有两个缓冲区用于入场信号,两个用于出场信号,还有一个用于止损。附带的StrategyIndi_1.0就是一个完整功能的示例。
接下来,我们可以利用策略测试指标 StrategySym_1.0来评估这个策略。如果对结果不满意,我们只需优化交易指标,就能实时客观地查看变化结果和统计数据。

如果将来想要实现一个EA,这也非常简单,因为通过调用自定义交易指标,我们可以获得所有的入场和出场信号以及止损值。
如何使用这个系统并根据自己的需求进行调整?
要直接使用这个系统,你只需将两个指标复制到MetaTrader的experts\indicators文件夹中。在使用之前,请确保重启终端,以便编译它们。
有一些设置你可能想要修改,大部分参数的名称是显而易见的,我只描述其他的一些:
- StrategyIndi参数:
- ChandBars = 7 吊灯止损策略的柱数
- ChandATRFact = 2.0 乘以长期ATR的因子,以获取吊灯距离
- RiskPercent = 2.0 根据起始止损计算的账户余额风险百分比(仅用于手动交易信息)
- Offset = 10 放置箭头的偏移量,单位为4位小数点的点数
- BarsBack = 2000 要处理的历史柱数
- AlertSound = "alert.wav" 声音提醒的WAV文件
- UseSoundAlert = true 如果希望有声音提醒(用于手动交易)
- UsePopupAlert = true 如果希望有弹窗提醒(用于手动交易)
- WriteToLog = false 如果希望记录日志(用于调试)
- StrategySim参数:
- MaxLossAtSL = 200.0 每个止损点的最大损失(账户货币)
- BarsBack = 2000 要处理的历史柱数
- WriteToLog = false 如果希望记录日志(用于调试)
如果你想根据自己的需求调整系统,需将所有与模拟相关的参数从你的StrategyIndi指标添加到StrategySym指标中。它们会在GetIndiSignals方法中使用,而其他参数(如UseSoundAlert)可以直接填入固定值。若要用于其他目的(如多货币策略),则可能需要更改代码注释和变量名称。如果需要帮助,请随时联系我!
通过这个系统,我希望能帮助大家更客观地评估交易策略(无论是手动系统还是EA),因为目前的市场营销方式往往非常具有误导性,导致许多新手交易者损失辛辛苦挣来的资金。
祝好,Robert
如有任何意见、MT4编程或相关咨询,请联系我:robert [dot] leskovar [at] gmail [dot] com。MQLTools网站的源代码已不再活跃。