深算 Quant · 开发与研究

MT5 EA 回测没有成交:排查顺序

按工具类型、初始化、品种周期、点差、交易开关、手数保证金和返回码排查 MT5 EA 零成交,区分有效零成交与执行失败。

先判断是否取得了有效测试结果

确认测试执行完成、报告对应准确源码版本且行情覆盖有效。超时、初始化失败、源码不匹配或报告待核验不是有效零成交。不要为了让收益表完整而把失败填为零。

它可能根本不是开仓 EA

面板、告警、点差监视与持仓管理工具可能不主动开仓;测试演示订单也不证明交易策略有效。先读源码和参数里的实际交易入口,再判断是否需要一张盈利回测。

逐项排查,不同时改变多个条件

  1. 查看初始化日志和 OnInit 返回,确认指标、资源和依赖加载成功。
  2. 核对目标品种及后缀、周期、测试日期与足够的指标预热历史。
  3. 检查交易开关、时段和已有持仓限制,确认信号确实可触发。
  4. 核对点差阈值及 point 单位;不要为追求成交直接删除风险过滤。
  5. 检查最小手数、手数步长、保证金和止损距离是否符合品种规格。
  6. 查看 OrderCheck / OrderSend 或交易类的真实返回码;10030 指向成交模式兼容问题。

修复版单独留证

有日志证据的点差或成交模式问题可形成独立修复版本。记录 sourceHash 与修改范围,在相同配置下复测并保留原结果;恢复成交只证明执行路径变化,不自动证明盈利。

条件合理但仍无成交

信号可能在这段历史中从未出现。保留有效零成交及其配置,扩大独立观察样本前说明变更原因;不能把无成交解释成“没有风险”,也不能把最差历史样本直接当作反向交易建议。

从明确的规则,开始下一次开发

保留源码与测试条件,在真实反馈中继续迭代。

开发者中心