MT5 EA优化入门:遗传算法详解
MT5 EA优化入门:遗传算法详解
在对EA参数进行调优时,MT5策略测试器提供两种优化模式:穷举法(遍历所有参数组合)和遗传算法(GA)。
面对海量参数组合,在合理时间内完成搜索,遗传算法是业界标准做法。本文将介绍遗传算法优化的基本原理及实用要点。
本文要点
- 若组合数超过数万种,应使用遗传算法(GA)而非穷举法进行搜索
- 评估指标选择回收系数或夏普比率,并排除交易次数过少的解
- 不要只看最高分的1个结果,而应通过前10至20名结果的集中程度、参数敏感性及分段验证来确定采用值
优化流程(全貌)
| 步骤 | 要做的事 | 详细说明 |
|---|---|---|
| 1 | 将要优化的参数限定在构成逻辑核心的少数几个 | 缩小优化对象 |
| 2 | 根据组合数决定使用穷举法还是GA | 穷举法与遗传算法的适用场景 |
| 3 | 在测试器中设置"基于遗传算法的快速优化"和评估指标 | 在策略测试器中进行设置 |
| 4 | 运行优化,在"优化结果"选项卡中观察收敛情况 | 执行遗传算法优化 |
| 5 | 通过分段验证、比较排名靠前的解、敏感性检查排除过度优化 | 如何避免过度优化 |
| 6 | 若耗时过长,借助并行代理或云网络缩短时间 | 充分利用并行优化 |
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
订阅后会立即收到订阅者专享合集的下载链接,内含本站 13 款 MT5 指标的已编译文件(.ex5)、源代码和使用指南。随后通过共 8 封邮件介绍外汇自动交易的本质、回测的正确解读方法和经纪商选择技巧(前 5 天每天 1 封,之后在订阅第 7、14、30 天各 1 封)。MQL5 Market 版(首发价,随销量分阶段涨价)涨价前也会通知您。在本站,只要拥有合作经纪商的真实账户,EA 即可免费使用。
※ 严格保护隐私。可随时取消订阅。
什么是遗传算法
遗传算法(Genetic Algorithm,简称GA)是一种模拟生物进化过程的优化方法。其基本流程如下:
- 随机生成多组参数(称为"个体")
- 对每个个体运行回测,并按评估指标(PF、回收系数等)打分
- 选取得分较高的个体作为"亲本",通过交叉和变异生成下一代
- 不断重复上述过程,随着代数增加,参数逐渐向高评分区域收敛
穷举法是"遍历所有组合",而GA则是"聚焦优质区域进行搜索",因此计算时间可缩短数个数量级。
穷举法与遗传算法的适用场景
| 穷举法 | 遗传算法(GA) | |
|---|---|---|
| 搜索方式 | 遍历所有组合 | 聚焦优质区域进行搜索 |
| 适用规模 | 参数数量少,组合在数千以下 | 参数数量多,组合超过数万 |
| 计算时间 | 随组合数成比例增加 | 可缩短数个数量级 |
例如,3个参数各取10个步长,共1,000种组合,穷举法完全可行。而5个参数各取20个步长,则有320万种组合,此时遗传算法就成为必要选择。
在策略测试器中进行设置
启用优化功能,需在策略测试器界面进行以下设置:

- 优化:选择"基于遗传算法的快速优化"
- 结果:选择评估指标,如"最大复利"、"自定义最大值"、"最大回收系数"等
- 输入参数选项卡:勾选需要优化的参数,并设置起始值、结束值和步长
如何选择评估指标
"什么是好结果"的定义直接影响优化结果。以下是常用指标及其特点:
| 指标 | 内容 | 特点 |
|---|---|---|
| 最大复利(利润) | 仅最大化收益 | 忽视风险,容易陷入过度优化 |
| 回收系数 | 净利润 ÷ 最大回撤 | 兼顾收益与风险 |
| 夏普比率 | 综合考虑收益的稳定性 | 重视稳定性 |
| 自定义最大值 | 可在EA代码中自由定义(例如:PF × 交易次数) | 可根据目的进行设计 |
推荐使用回收系数或夏普比率,这是在避免过度优化的同时找到实用参数的最佳方式。
执行遗传算法优化
启动优化后,每一代中评估值较高的参数组合将依次显示在"优化结果"选项卡中。
MT5的遗传算法会自动运行数百代,并逐步收敛至最优解。

常见陷阱
| 症状 | 可能原因 |
|---|---|
| 收敛过快 | 可能是参数搜索范围设置过窄 |
| 始终不收敛 | 评估指标选择不当,或数据噪声过多 |
| 收敛到明显异常的值 | 未排除交易次数过少的结果 |
在评估函数中加入"排除交易次数少于50次的结果"等筛选条件,可以有效过滤样本量不足的噪声解。
如何避免过度优化
优化运行越多,就越容易得到"在历史数据上完美但在未来市场失效"的参数。避免过度优化的实用原则有以下4条:
| 原则 | 确认内容 |
|---|---|
| 1. 划分时间段 | 后段的样本外结果是否明显变差 |
| 2. 比较排名前10至20的结果 | 排名靠前的解是否集中在相近区域 |
| 3. 检验参数敏感性 | 上下浮动10%至20%后结果是否大幅劣化 |
| 4. 保留部分未优化参数 | 是否保留了逻辑上自然的固定值 |
1. 划分时间段
以10年历史数据为例,可用前7年进行优化,后3年进行样本外(OOS)验证。若后3年结果明显变差,则说明存在对前7年数据的过度拟合。
2. 比较排名前10至20的结果
仅采用最高分的单个结果存在风险。
需确认排名靠前的解是否集中在相近的参数区域,若确实集中,则选取该区域中间附近的参数。
3. 检验参数敏感性
将候选参数上下浮动10%至20%,检查结果是否出现大幅劣化。若结果崩溃,说明该解过度拟合于某个"尖峰最优点"。
4. 保留部分未优化参数
始终保留"未经优化、逻辑上自然的固定值",可降低过度优化风险。
例如,对EMA周期进行优化的同时,将ATR倍数固定不变。
充分利用并行优化
MT5支持多CPU核心的并行优化。在"测试器"→"设置"中增加代理数量,可有效缩短计算时间。
此外,借助MQL5云网络,可调用全球分布的远程代理进行大规模优化,但会产生费用。因此,建议先在本地缩小参数范围,再考虑使用云优化。
缩小优化对象
需要优化的参数,基本原则是限定在入场判断周期、止损幅度等构成逻辑核心的少数几个。
其余参数固定为"自然值",更容易防止过度优化。
回测PF只要不断优化就能一直提高,但相应地在未来市场中失效的可能性也随之上升。选择平凡的数字、长期稳定运行,才是实际运营中的现实解法。
免费EA下载
本站的免费EA DONCHIAN ENGINE(USDJPY H1)在USDJPY H1、9.4年(2017-2026 Dukascopy真实tick)的回测中,PF 1.50、胜率34.5%、最大DD 10.8%、交易次数631次。
推荐经纪商
为确保回测与优化结果能在实盘中良好复现,本站推荐注重成交质量的经纪商。
相关文章
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
订阅后会立即收到订阅者专享合集的下载链接,内含本站 13 款 MT5 指标的已编译文件(.ex5)、源代码和使用指南。随后通过共 8 封邮件介绍外汇自动交易的本质、回测的正确解读方法和经纪商选择技巧(前 5 天每天 1 封,之后在订阅第 7、14、30 天各 1 封)。MQL5 Market 版(首发价,随销量分阶段涨价)涨价前也会通知您。在本站,只要拥有合作经纪商的真实账户,EA 即可免费使用。
※ 严格保护隐私。可随时取消订阅。