深算 Quant · 开发与研究

MT4 与 MT5 EA:平台、持仓与证据区别

理解 MQL4/MQL5 文件、订单和持仓模型、指标句柄与账户模式差异;MT5 回测证据不能转移给 MT4,迁移后需要独立编译和验证。

文件后缀不是转换器

MQL4 源码与编译产物通常是 .mq4 / .ex4,MQL5 是 .mq5 / .ex5。改扩展名不会转换交易 API、指标调用或事件处理逻辑。生成或修改前指定目标平台,检查实际下载文件与任务对应关系。

公开目录同时有 MT4 与 MT5 资料,但本轮原生研究证据来自 MT5。MT4 资料可供检索,不应从另一平台的实验推断 MT4 已编译、已成交或已验证收益。

订单、成交与持仓分开核对

MT5 区分 orders、deals 和 positions;一个订单可能多次成交,一笔持仓也可能分批退出。不要把成交明细行数直接当作完整平仓交易数量。MT4 的订单管理路径不同,迁移时要明确选择、修改和平仓对象。

MT5 净持仓账户会合并同品种头寸,对冲账户允许独立头寸;“最多一笔”“反向平仓”“加仓”在两种模式下含义不同。账户模式要显式检查,Magic 标识和品种过滤也不能代替完整持仓规则。

指标读取与初始化独立验证

MQL5 常用指标句柄与 CopyBuffer 取得数据,需检查句柄、缓冲区和已计算柱数;不要机械替换 MQL4 的数值调用。信号使用当前柱还是已收盘柱、新 K 线判断及预热窗口必须一致。初始化失败或依赖缺失不能标成有效零成交。

迁移是新版本,不沿用旧结论

保留原平台源码与参数,列出交易 API、仓位模式、指标、时间和成本的差异。迁移后重新编译,并在可对照的测试配置下核对信号和成交;由于行情及平台模型不同,收益差异需解释,不能要求数值必然相同。

公开研究的 sourceHash 与 configId 绑定具体版本和测试。平台迁移后的文件不能继承原版的编译或回测证据;本指南不提供自动迁移验收或实盘许可。

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

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

开发者中心