优化应寻找市场状况变化时仍有用的设置,而非最漂亮的历史净值曲线。目标是找到结果可接受的稳定区域,并由未使用过的数据和现实成本支持。
优化前先定义成功标准
选择能反映 EA 预期行为的目标,不只看净利润。最大回撤、交易笔数、平均交易、盈利因子、恢复特征与风险敞口都重要。利润突出但回撤不可接受,或仅有少量交易的测试轮次,不是稳健候选。
仅最大化利润,可能奖励过高风险、单个有利时期,或交易过少而无法评估的设置。
区分开发数据与验证数据
按时间顺序划分历史。用第一段探索,保留后续一段不动用于样本外验证,再用当前前向模拟数据观察选定设置。不要反复查看验证期并据此调整;这样会使其悄然成为训练集一部分。
测试合理参数范围,理解行为。
在未用于筛选的时期检查规则。
在模拟账户确认当前信号、成本与执行。
实用 MT4 优化流程
选择具有逻辑作用的参数
只优化可能影响入场、退出或风险的变量。固定值保持固定。测试所有输入会成倍增加组合数量及发现噪声的机会。
采用较宽且有意义的范围
从较粗步长和现实限制开始。若只有一个精确值有效,系统就很脆弱。相邻值应产生合理相近的行为。
按风险与样本质量筛选
排除回撤不可接受、交易过少、仓位不合理或结果由短期表现主导的测试轮次。再比较剩余参数群,而非按利润为每次测试排名。
锁定设置,再验证
打开未使用时期前选定设置。记录 EA 构建版本、品种、周期、点差、入金、数据日期和全部输入,确保结果可复现。
对选定区域进行压力测试
| 测试 | 问题 | 合理行为 |
|---|---|---|
| 相邻输入 | 小幅参数变化会使系统失效吗? | 结果逐步变差,而非灾难性恶化。 |
| 更高点差 | 交易成本会吞噬优势吗? | 加入现实缓冲后,逻辑仍可行。 |
| 调整日期 | 全部结果是否仅由一种市场环境造成? | 多个时期有贡献,而非集中于单一时期。 |
| 延迟执行 | 策略依赖完美成交吗? | 中等滑点不会逆转结论。 |
| 更低风险 | 表现是否仅在过高风险敞口下才吸引人? | 保守仓位下交易逻辑仍一致。 |
何时应排除优化结果
- 最佳轮次是孤立峰值,周围结果很差。
- 多数利润来自一笔交易或一个短期。
- 样本外回撤大幅扩大,或交易行为完全改变。
- 点差或滑点略增即消除优势。
- 所选手数不符合计划账户风险。
优化不能证明未来盈利,只能帮助排除薄弱假设,识别值得进一步观察的设置。
记录搜索规模,并保持风险处理一致
假设参数网格:一个参数有 20, 30, 40 ,另一个参数有 2, 3, 4。完整网格包含 3 × 3 = 9 种组合。更多参数会成倍扩大搜索空间,增加偶然拟合历史的机会。遗传搜索抽样候选,不应被描述为检查每个组合。
使用一致仓位规模规则比较候选。因风险敞口更大而净利润更高,不证明入场规则更好。除优化目标外,记录交易笔数、回撤、成本和收益集中度。优先选择合理相邻设置的稳定区域,而非孤立峰值。
保持按时间划分的保留样本独立
示例划分:在 2020–2023期间开发规则,保留 2024–2025 用于后续测试,并于 2026开始新的前向观察。这些日期仅为示例,不代表经过测试的结果。打开保留报告前固定筛选规则。若阅读后更改参数,该时期已成为开发数据的一部分。
在滚动前推过程中,每次选择只能用评估窗口前已可用数据。记录窗口和筛选规则,包括亏损候选。查看所有窗口后反复重新设计流程,可能使流程本身过拟合。优化和干净保留样本均不能保证未来表现。
官方 MT4 优化设置 说明了参数范围与遗传选项。
官方参考
MetaTrader 将优化描述为使用不同输入参数反复运行策略测试器,详见其 官方 EA 优化文档。