首页 / 交易学院 / EA 调试、测试与优化实战指南
EA 调试、测试与优化实战指南
🔧

EA 调试、测试与优化实战指南

从消灭编译错误,到用策略测试器找到最佳参数

回测与测试 难度 · 入门 2026-07-15 12 分钟阅读
#MQL5#调试#策略测试#优化#遗传算法

大多数 EA 写不完,卡在两关:编译一堆红叉不知从哪改,以及回测参数怎么调都调不出棒亮曲线。本文用官方《EA 测试与优化指南》的真实案例,把这两关一次性讲透。

一、逐个消灭编译错误

Error 选项卡四要素:①错误说明 ②出错文件 ③行列号 ④错误/警告总数。用 Ctrl+G 或双击错误跳到对应行。关键纪律:逐步改、逐步编译,别一次性堆一堆再编。

✦ 改一处往往消一批
很多错误是连锁的(比如漏一个左括号会让后续十几行全报错)。逐步改+逐步编译,才能看清真正根源。

二、运行时错误:数组越界

编译过了不代表能跑。案例:CopyBuffer 只拷了 3 根柱(索引0/1/2),代码却读 [3] → Array out of range。修正:把拷贝数量放大到 5,覆盖所需索引。

三、策略测试器初步测试

View → Strategy Tester;选 Expert 与周期;优化类型选“市场报价中所有品种”;目标选 Balance + Max Profit Factor;跳完按 Result 排序,找出最赚钱的品种/周期作为优化方向。

四、优化 EA

启用优化 + 快速遗传算法;在 Inputs 里只勾关键参数。Start/Step/Stop 含义:Start=最小值、Stop=最大值、Step=每次递增步长;实际测试值都在 [Start,Stop] 内且为 Step 整数倍。测试总次数 = 各参数组合数。

⚠ 别让组合数爆炸
勾太多参数或步长设太小 → 组合数成千上万、优化跑几天。多数 EA 只依赖 2-3 个参数(尤其指标周期),聚焦它们即可。

五、解读优化结果

右键加列看 Profit Factor(盈利系数)、Expected Payoff(预期收益)、Drawdown%(回撤)。盈利系数=总盈利/总损失,越高越赚;回撤越小策略越稳;恢复系数=盈利/最大回撤,反映风险。综合选高利润且低回撤的那组。结果存为 XML,可用 Excel 打开。

六、终测:最佳参数组合再跑一遍

切到优化图 → 1D Graph,右键选 X 轴参数看曲线峰值,逐个确定最佳值(如止损 34、止盈 78、各周期值)。把最佳值组合进 Inputs,关掉优化跑“终测”,确认结果稳定。

小结

常见问题

不建议。很多错误是连锁的——改一处会顺带消掉一批;逐步改+逐步编译才能看清真正根源,避免越改越乱。
= 是赋值,== 是比较。在 if 里写成 if(a=b) 会变成“赋值”且条件永远为真/假,是新手高频 bug。
Start 是参数最小值,Stop 是最大值,Step 是每次递增的步长;实际测试值都在 [Start,Stop] 内且是 Step 的整数倍。
切到优化图 → 1D Graph,右键选 X 轴参数看曲线峰值;同时顾高利润与低 Drawdown%,不单看利润。