同一EA同一周期回测结果对不上?先查这5处
“公开的业绩和我自己跑出来的回测对不上。”关于我们发布的EA,这是收到的咨询中最常见的一类。
先说结论:即使是同一个EA、同一段测试周期,只要环境有一处不同,结果就会出现偏差。 大多数原因不在EA本身,而在测试一方的条件差异。排查的顺序,大致是下面这5处。
- 服务器时间与时区
- 品种规格
- 隔夜利息(Swap)
- 历史数据
- 模型类型(Tick生成方式)
不过,即使这5处全部对齐,也不一定能做到完全一致。这一点我们会在后半部分的“局限”中如实说明。
为什么“同一个EA”结果也会不同
EA是根据收到的价格和品种信息做判断的程序。输入哪怕只有一点不同,入场的时点就会错开。第一笔交易一旦错开,之后的资金量、手数和持仓状况都会连锁变化,在跨越数年的测试中,最终成绩可能看起来大相径庭。
可以这样理解可复现性问题:它是“某一处的微小差异,随时间被不断放大”的问题。
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
订阅后会立即收到订阅者专享合集的下载链接,内含本站 13 款 MT5 指标的已编译文件(.ex5)、源代码和使用指南。随后通过共 8 封邮件介绍外汇自动交易的本质、回测的正确解读方法和经纪商选择技巧(前 5 天每天 1 封,之后在订阅第 7、14、30 天各 1 封)。MQL5 Market 版(首发价,随销量分阶段涨价)涨价前也会通知您。在本站,只要拥有合作经纪商的真实账户,EA 即可免费使用。
※ 严格保护隐私。可随时取消订阅。
需要排查的5个地方
1. 服务器时间与时区
MT5显示的时间不是电脑的时钟,而是经纪商的服务器时间。服务器时间因经纪商而异,有的会随夏令时切换,有的则不切换。
受影响较大的是以下这类EA:
- 带有时间段过滤的EA,例如“仅限东京时段”“排除纽约时段”
- 以日线开盘价、最高价、最低价为基准的EA(各经纪商的日线分界时间不同)
- 在周初或周五收盘前有特殊处理的EA
在周日会生成短日线的经纪商那里,日线的根数本身就会不同。对于基于日线的突破类EA,仅这一点就可能让结果完全不同。
2. 品种规格
即使同样叫“XAUUSD”,内容也不一定相同。请在规格窗口中确认以下项目:
- 小数位数(小数点后的位数)与点值大小
- 合约大小
- 最小手数与手数步长
- 止损水平(Stop Level,挂单和止损单允许放置的最小距离)
- 保证金计算方式
小数位数不同时,以“多少点”指定的止损幅度,实际上可能相差10倍。在止损水平较宽的经纪商那里,较窄止损的订单甚至可能根本无法通过。
3. 隔夜利息(Swap)
MT5的测试器是把运行测试时该品种设置中的Swap值,套用到整个测试期间来计算的,并不是过去真实的Swap变化。因此,即使是同一家经纪商,测试的日期不同,结果也可能不同。
- 持仓时间越长的EA,受影响越大
- 按3天计收Swap的星期几,因经纪商而异
- 在无Swap账户类型(伊斯兰账户)中,可能会收取其他费用
对于持仓数日的EA,Swap的差异会清楚地体现在盈亏差异上。
4. 历史数据
测试器使用的价格数据,是从所连接经纪商的服务器下载的。数据的起始时间、缺失情况和Tick密度,因经纪商而异。
- 测试期间的前段数据不完整
- 下载尚未完成,第二次测试时结果就变了
- 即使是同一家经纪商,服务器端更新数据后,结果也会事后发生变化
“日志”选项卡中是否出现“数据同步”或“历史数据缺失”的记录,务必要检查一下。
5. 模型类型
选择“仅开盘价”“1分钟OHLC”“每个Tick”还是“基于真实Tick的每个Tick”,同一个EA的结果会截然不同。止损、止盈越近的EA,对Tick的生成方式越敏感。
此外还请确认以下两点:
- 点差设置:选择“当前点差”后,点差会固定为测试时那个时段的点差。在周末或清晨运行,可能会用较宽的点差进行测试
- 成交延迟设置:是否启用延迟,会让短线交易的EA结果出现分化
可复现性检查清单
与公开业绩对比时,按照下表从上到下逐项填写,更容易缩小原因范围。
| 确认项目 | 在哪里查看 | 容易受影响的EA |
|---|---|---|
| 服务器时间・夏令时 | 报价窗口的时间显示、经纪商公告 | 时间段过滤・以日线为基准 |
| 小数位数・合约大小 | 品种的规格窗口 | 使用按点数指定止损的EA |
| 止损水平 | 品种的规格窗口 | 止损幅度较窄的EA |
| Swap值・按3天计收的星期 | 品种的规格窗口 | 长期持仓EA |
| 历史数据的起始・缺失 | 测试器的日志选项卡 | 所有长周期测试 |
| 模型类型 | 测试器设置 | 短线交易・马丁加仓类 |
| 点差・延迟 | 测试器设置 | 剥头皮类 |
| 账户货币・初始资金・杠杆 | 测试器设置 | 因复利而手数变化的EA |
| 输入参数 | 测试器的输入选项卡 | 所有EA |
最后的“输入参数”出乎意料地容易被忽略。请每次都确认,上一次测试时改动过的值是否还保留着。
如果对MT5的基础设置没有把握,从MT5设置的步骤重新核对是最快的办法。
局限与注意事项
接下来是对我们不太有利的内容。
- 即使把5处全部对齐,使用其他经纪商的数据时,也可能无法完全一致。 原因是Tick本身因经纪商而异,这一点测试者无法解决
- 我们公开的回测数值,同样是基于特定经纪商、特定时点的数据测得的。我们不保证在您的环境中能得到相同的数字
- 也有无法精确区分“哪个差异影响了多少”的情况。出现偏差时,只能逐项修改后重新测试
- 即使回测结果对齐了,那也只是基于历史数据的验证,并不保证未来的业绩
反过来说,更换经纪商后结果也不会大幅走样的EA,更值得信赖。 在多家经纪商上测试并比较,虽然费事,却是一种有效的确认方法。各经纪商的规格差异,整理在外汇经纪商比较中。
总结
- 即使是同一个EA、同一段周期,环境差异也会让结果产生偏差。原因多半在测试条件,而不是EA本身
- 排查顺序是“服务器时间・品种规格・Swap・历史数据・模型类型”
- 注意Swap使用的是“测试时的值”,并被套用到整个测试期间
- 点差设置、延迟和遗留的输入参数同样容易被忽略
- 即使全部对齐,经纪商不同也可能无法完全一致
- 更换经纪商后是否依然稳定,可以作为选择EA时的判断依据
其他验证方法,整理在EA・MT5知识库中。
相关文章
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
订阅后会立即收到订阅者专享合集的下载链接,内含本站 13 款 MT5 指标的已编译文件(.ex5)、源代码和使用指南。随后通过共 8 封邮件介绍外汇自动交易的本质、回测的正确解读方法和经纪商选择技巧(前 5 天每天 1 封,之后在订阅第 7、14、30 天各 1 封)。MQL5 Market 版(首发价,随销量分阶段涨价)涨价前也会通知您。在本站,只要拥有合作经纪商的真实账户,EA 即可免费使用。
※ 严格保护隐私。可随时取消订阅。