MQL4 转 MQL5 转换器
把你的 MetaTrader 4 EA 迁移到 MetaTrader 5,或反过来。在下方粘贴代码即可查看结果:转换在你的浏览器中完成,代码不会上传。
转换器如何工作
多数转换器会重写每一行代码,从而以难以察觉的方式破坏代码。QuantForge 保留你的代码,并为它调用的函数添加另一平台的版本:OrderSend、OrderSelect、iMA、iRSI、AccountBalance、MarketInfo 等函数会基于持仓、成交和指标句柄为 MetaTrader 5 重建。只有无法这样处理的部分才会被改写:
Bid、Ask、Close[1]及其他价格数组,extern变量,改为input(当你的代码修改它们时会保留一个副本),- 旧的
init、start和deinit函数,改为OnInit、OnTick和OnDeinit。
结果可在 MetaEditor 5 中编译,并保留你的注释、命名和结构,便于继续阅读和维护。
可以直接处理的提示
每次转换结束都会列出需要检查的地方,并附上行号。例如:需要一并转换指标的 iCustom 调用、在 MetaTrader 5 上必须为 64 位的 DLL、对 Period() 的算术运算,或 MetaTrader 5 编号不同的 ERR_ 错误代码。
转换之后
- 在 MetaEditor 中打开
.mq5文件并编译,或在 QuantForge 中一键编译(Pro)。 - 在 MetaTrader 5 策略测试器中使用**对冲(hedging)**账户,以与之前相同的品种和日期运行,并与 MetaTrader 4 的结果对比。
- 实盘前先在模拟账户上测试。
想从头开始?在无代码 EA 构建器中用模块重建策略,一个项目即可导出两个平台的版本。
常见问题
MQL4 转 MQL5 转换器免费吗?
免费。所有方案(包括免费版)都可以免费转换源代码。本页显示预览;注册免费账户后,可以转换、下载并保存完整文件。一键把转换后的 EA 编译为 .ex5 或 .ex4 属于 Pro 功能。
转换后的 EA 会和原来完全一样地交易吗?
你的代码保留原有逻辑,转换器会为它调用的 MQL4 函数添加 MetaTrader 5 版本。有些差异来自平台本身而非代码:在净头寸(netting)账户上,MetaTrader 5 会把同一品种的交易合并为一个持仓,Period() 的返回值也不同。转换器会带行号列出这些地方。交易前请务必先在策略测试器中测试结果。
能把 .ex4 文件转换成 .ex5 吗?
不能。编译后的 .ex4 不含源代码,拆解它违反 MetaTrader 的条款。QuantForge 只会重建它为你自己账户编译的 .ex4 / .ex5 文件。其他 EA 请转换其 .mq4 源代码。
能转换指标吗?
暂时不能。它转换 EA 和脚本。当 EA 通过 iCustom 读取自定义指标时,转换器会提醒你也转换该指标,并告诉你放在哪里。
能从 MQL5 转回 MQL4 吗?
能。它把 MQL5 EA 和脚本转换为 MQL4,包括持仓、CopyBuffer 读取和指标句柄。基于 MQL5 标准 Expert 类的代码不会被转换,转换器会明确提示。
今天就构建你的第一个 EA
免费版包含三个项目、H1 至 D1 一年的回测、MQL4/MQL5 导出和转换器。