跳转到正文

回测与前向测试

回测是在历史数据上评估策略;前向测试则使用选定参数时尚不可得的数据运行策略,其中也包括实时数据。

为什么仅有回测还不够

任何策略都可以拟合过去:只要搜索足够多的参数,就能找到收益曲线漂亮的组合。但这种组合描述的是某一段历史,而非市场本身。

最基本的防范措施是将历史数据分成两部分:在前一部分选择参数,仅在后一部分验证参数。如果验证样本上的表现崩溃,就谈不上有效策略。

寻找平坦区域,而非孤立峰值

不要只看最佳结果,还要看它周围的表现。如果相邻参数值的测试结果接近,就形成了一个平坦区域,说明该设置可能反映了某种市场特征。如果最大值孤立存在,而相邻参数组合均亏损,那就是过度拟合。

最后一步是在模拟账户上进行实时前向测试:这会纳入测试器中缺失的点差、滑点和延迟因素。我们在EA 排行榜中公布这类测试结果。

我们的数据显示什么

我们的 EA 在2022–2024期间的数据上选择参数,并在2025–2026期间的数据上验证:训练样本的盈利因子为1.39,验证样本为1.33,另有九组相邻参数组合也实现盈利(1.21–1.39)。如何从命令行运行测试器,详见MQL5 系列第二部分。

常见错误

  • •在全部可用历史数据上优化参数,然后为结果欢呼。
  • •使用低质量数据进行测试:“Open prices only”(仅开盘价)并不适合所有策略。
  • •将一个月盈利的前向测试视为证据:对于机械交易策略,这仅是几十笔交易的样本。

FAQ

测试 EA 需要多长的历史数据?

应足以累计至少数百笔交易,并覆盖不同市场状态:趋势、震荡区间和危机时期。对于日内策略,通常需要三到四年。

什么是滚动前向测试?

这是一种在滚动历史窗口上反复选择参数,并在紧接其后的时段进行验证的方法。它比一次性划分样本更贴近实际,但需要更多次测试。

相关术语

查看实时数据中的例子

Profit factor, drawdown and win rate of the expert advisors in our catalog are shown in the EA rating — these are demo accounts whose results cannot be edited after the fact. The robots themselves are in the free expert advisor catalog.