首页 > 博客 > 别被MT5测试器的输入值缓存骗了

策略测试器回测验证流程

别被MT5测试器的输入值缓存骗了

发布日: 2026-10-18阅读时间:约 3 分钟
⏱ 本文为发布之日的信息。EA的业绩数值(PF、DD、年化)会随实盘运行与重新验证而变动,最新数值请在各EA页面确认。 查看最新EA业绩 →

结论:测试器里的输入值,要默认它还留着"上一次的值"

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实机回测的实测值)。

EAPF交易数有效DD
DONCHIAN ENGINE1.563110.8%
MEGAMAX DONCHIAN1.5562958.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 即可免费使用。

※ 严格保护隐私。可随时取消订阅。

对EA或外汇有疑问吗?

可以在Nattzy交易论坛发帖提问(免费注册)。不限于本文内容,EA设置、经纪商选择等问题也欢迎。

在Nattzy提问 ↗

评论与提问