别被MT5测试器的输入值缓存骗了
目录
结论:测试器里的输入值,要默认它还留着"上一次的值"
MT5的策略测试器会按EA分别记住上一次的输入值。这个功能很方便,但在更新EA之后,或者刚做完另一项验证时,你以为自己验证的参数,和实际跑出来的参数可能并不一致。
我们的对策很简单:不要相信测试器界面上显示的值。把全部参数写进配置文件的 [TesterInputs],再用报告里留下的输入值来核对。 本文说明这样做的理由和具体步骤。
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
订阅后会立即收到订阅者专享合集的下载链接,内含本站 13 款 MT5 指标的已编译文件(.ex5)、源代码和使用指南。随后通过共 8 封邮件介绍外汇自动交易的本质、回测的正确解读方法和经纪商选择技巧(前 5 天每天 1 封,之后在订阅第 7、14、30 天各 1 封)。MQL5 Market 版(首发价,随销量分阶段涨价)涨价前也会通知您。在本站,只要拥有合作经纪商的真实账户,EA 即可免费使用。
※ 严格保护隐私。可随时取消订阅。
为什么会验证到另一套参数
测试器会保存输入值并反复沿用
MT5测试器会按EA保存最后一次使用的参数,下次再选同一个EA时自动读取。这省去了手动输入的麻烦,但在下面这些情况下就会出事故。
- 改了EA并修改了默认值,测试器里却还留着旧值
- 优化时试过极端数值,之后直接带着这个值跑了普通回测
- 为其他货币对调整过的手数和过滤设置,被带到了下一次验证
这些问题只要认真看一眼界面本来都能发现。但如果EA有几十个输入项,只有一项不同也很容易漏掉。
麻烦在于结果"看起来很像样"
即使参数不对,测试器也不会报错。结果如果完全离谱,还容易察觉;真正麻烦的是跑出来的数字看上去合情合理。
举个例子,下面是两个同样运行在USDJPY H1上的Donchian系EA(两者均为MT5实机回测的实测值)。
| EA | PF | 交易数 | 有效DD |
|---|---|---|---|
| DONCHIAN ENGINE | 1.5 | 631 | 10.8% |
| MEGAMAX DONCHIAN | 1.55 | 629 | 58.6% |
PF和交易数几乎一样,有效DD却相差很大。两者的设计差异在各自的EA页面里有说明,这里想强调的是:只看PF和交易数,根本分不清跑的是哪一套参数。 只要有一个输入值偏了,对风险的评估就可能整个变样。
我们的确认步骤
1. 把全部参数写进配置文件的 [TesterInputs]
MT5可以通过配置文件(ini)来启动测试器。在其中的 [TesterInputs] 段里,不只写要改的项目,而是写出全部输入值。
[Tester]
Expert=MyEA
Symbol=USDJPY
Period=H1
Model=4
[TesterInputs]
InpLots=0.10||0.10||0.01||1.00||N
InpPeriod=20||10||5||50||N
格式为"值||起始值||步长||终止值||是否优化(Y/N)"。普通回测时末尾填 N。
没有写在这里的参数会用什么值运行,可能因环境而异,所以我们不去指望它。 "应该还是默认值吧"这种想当然,正是本文所讲的事故本身。
2. 核对报告中的输入参数
测试器的报告会留下实际使用的输入值。验证结束后,把ini和报告里的输入值逐项比对。与其用肉眼对照,不如转成文本再做差异比较,更可靠。
3. 更新EA后,当作"另一个EA"处理
改过默认值的EA,要在文件名里加上版本号,另存为新名字。这样从一开始就切断了旧保存值被自动读取的途径。
检查清单
- 已在
[TesterInputs]中写出全部输入项 - 优化之后,所有项目的末尾都已改回
N - 报告中的输入值与ini一致
- EA改动后已更换文件名
- 品种、周期、建模方式也已在
[Tester]中明确指定
局限与注意事项
即使这样做,也不能防住所有事故。
- EA内部没有作为输入值暴露的常量,无法通过ini来管理。源码是否相同,需要用其他方式确认。
- 即使输入值正确,只要历史数据或点差条件不同,结果也会变。核对输入值只是保持可复现性的一个环节。
- 我们自己也无法断言,在彻底执行这套步骤之前跑过的验证全部正确。就我们已发现的范围,已经重新做了验证,但不能保证绝无遗漏。
已发布EA的设置方法请见EA设置方法,其他验证经验汇总在知识库。
总结
- MT5测试器会记住上一次的输入值,并在不知不觉中沿用
- 参数偏了也不会报错,还会出现看似合理的数字,所以很难察觉
- 对策是在
[TesterInputs]中写出全部参数,并与报告中的输入值核对 - 改动EA后要另存为新名字,避免读取到旧的保存值
- 即便如此,内部常量和数据条件的差异仍无法避免,因此输入值管理只是验证工作的一部分
相关文章
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
订阅后会立即收到订阅者专享合集的下载链接,内含本站 13 款 MT5 指标的已编译文件(.ex5)、源代码和使用指南。随后通过共 8 封邮件介绍外汇自动交易的本质、回测的正确解读方法和经纪商选择技巧(前 5 天每天 1 封,之后在订阅第 7、14、30 天各 1 封)。MQL5 Market 版(首发价,随销量分阶段涨价)涨价前也会通知您。在本站,只要拥有合作经纪商的真实账户,EA 即可免费使用。
※ 严格保护隐私。可随时取消订阅。