EA 优化是寻找能提升策略历史表现的参数值的过程。操作正确时,它能精炼真实的交易优势。操作错误时,它会产生在历史数据上看起来出色、但在实盘中立刻失败的参数。两者之间的区别,在于是否坚守前推分析的原则。
优化的核心问题
优化是在参数空间中搜索,寻找能在历史数据集上使所选指标(总收益、夏普比率、盈利因子)最大化的参数组合。问题在于:只要参数组合足够多,您总能找到在任何历史数据——包括随机噪声——上看起来出色的设置。
这就是曲线拟合(也称过拟合)。曲线拟合的 EA 是在死记硬背回测期间的特定价格走势,而非发现真实优势。它在前推测试中会跑不好或直接失败。
前推分析的解决方案
对抗曲线拟合的良方是样本外测试。保留一部分历史数据——通常是最近的 20-30%——作为从不参与优化的”验证集”。然后:
- 在较早的样本内数据(例如 2020-2024 年)上优化参数
- 在样本外数据(例如仅 2025 年)上测试最优参数,不做任何进一步调整
- 若表现在样本外期间依然稳健,则这些参数具有一定的真实预测价值
MT5 的策略测试器内置”前推优化”模式,可在滚动窗口上自动完成这一过程。
稳定性测试——实用捷径
若前推优化显得复杂,检测过度优化的一个更简单信号是参数敏感性。找到最优参数后,测试附近变量:若默认 ATR 倍数为 2.0,同时测试 1.8 和 2.2。
- 稳定参数:1.8 和 2.2 下的表现与 2.0 相近。结果对该参数不高度敏感——优势是真实的。
- 曲线拟合参数:在 1.9 或 2.1 时表现急剧下降。2.0 这个值是专门针对历史数据优化出来的;稍有变动就会导致结果崩溃。
始终优先选择处于”表现平坦区”的参数,即使其绝对峰值表现略低于更敏感的最优解。
应该优化什么(以及不应该优化什么)
应该优化:
- 止损倍数(基于 ATR 的止损具有自然参数范围)
- 趋势过滤阈值(ADX 水平、EMA 周期)
- 时段过滤器(时间窗口入场条件)
不应该优化:
- 每笔交易风险百分比——这是仓位管理决策,不是优势参数
- 以最大化回测利润为目的设置的出场目标——未来市场不是历史市场的镜像
何时停止优化
一条实用的停止规则:一旦您在样本外期间的夏普比率超过 1.5,且您的前推效率(样本外利润 / 样本内利润)超过 0.5,就停止优化。在此阶段进一步细化只会增加曲线拟合风险,而不会带来相应的优势提升。
上线前的最后检验:在模拟账户上运行优化后的 EA 一个月,逐笔对比结果与回测。若模拟表现在回测夏普比率的 20% 以内,则参数可行。若模拟严重跑不赢,请重新检查回测设置中的成交模型假设(点差、滑点)。