回测与前向测试
回测是在历史数据上评估策略;前向测试则使用选定参数时尚不可得的数据运行策略,其中也包括实时数据。
为什么仅有回测还不够
任何策略都可以拟合过去:只要搜索足够多的参数,就能找到收益曲线漂亮的组合。但这种组合描述的是某一段历史,而非市场本身。
最基本的防范措施是将历史数据分成两部分:在前一部分选择参数,仅在后一部分验证参数。如果验证样本上的表现崩溃,就谈不上有效策略。
寻找平坦区域,而非孤立峰值
不要只看最佳结果,还要看它周围的表现。如果相邻参数值的测试结果接近,就形成了一个平坦区域,说明该设置可能反映了某种市场特征。如果最大值孤立存在,而相邻参数组合均亏损,那就是过度拟合。
最后一步是在模拟账户上进行实时前向测试:这会纳入测试器中缺失的点差、滑点和延迟因素。我们在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.