源码与编译
如何在 MetaEditor 中编译 MQL5 源码
编译 MT5 EA 时,应在 MetaEditor 打开主 MQ5 文件,准备好所需依赖,然后选择 Compile。使用生成的 EX5 前先阅读编译结果。编译检查的是能否构建,并没有测试策略行为。
准备可复现的工作环境
保留交付压缩包不变,使用副本操作。记录源码版本和 MetaTrader/MetaEditor 构建号。如果安装了多个经纪商终端,先确定本次使用哪一个,再放置文件。
从该终端选择 File → Open Data Folder,定位工作目录。EA 通常放在 MQL5/Experts/,引用文件和其他依赖按交付说明放置。各目录用途见MetaEditor 目录指南。
现在就记录交付包、主文件、目标终端和手动改动。否则以后即使找到一个可运行的 EX5,也可能无法确定它是由哪份源码生成的。
打开主文件并编译
在 MetaEditor 中打开主 .mq5 文件,选择 Compile 或按 F7,然后阅读 Errors 标签。编译失败不会生成新的可执行文件;出现警告时仍可能生成程序。参见官方编译说明。
不要把打开辅助引用文件当成已经构建整个 EA。也要核对编辑器中的完整路径:不同目录下可能存在同名文件。
根据诊断修复,不盲目改策略
| 现象 | 检查方向 |
|---|---|
| 找不到引用文件或库 | 先对照交付清单与路径,再修改引用。 |
| 名称或函数未定义 | 检查平台、依赖和支持的构建号。 |
| 类型转换警告 | 检查数值是否可能被取整、截断或误读。 |
| 一次修改后出现很多错误 | 从首个相关诊断开始,与未修改的副本比较。 |
仅因为某行报错就删除它,可能同时删除程序行为。如果不能解释修改的目的,应保留原文件并联系支持。提供完整报错、文件名和行号,比只说“无法编译”更有用。
确认将要测试的程序
编译成功后,检查 EX5 的位置和修改时间,再在目标终端选择对应 EA。残留的旧 EX5 可能让失败的新改动看起来仍能运行。官方编辑、编译与运行教程也说明了这一流程。
构建记录应与测试记录放在一起。自己的实验可以使用 demo-check-01 等清楚的名称,避免不断覆盖“final”。每次有意义的比较都保留源码及设置。
编译通过后的检查
- 用较短历史检查初始化和输入是否符合预期。
- 阅读测试日志,排查初始化及运行错误。
- 核对具体开仓、平仓和手数。
- 扩大为有记录的历史测试,再进入模拟盘观察。
零错误编译只是一个检查点,不能证明订单处理、重启行为或盈利能力正确。继续使用MT5 回测流程,再次修改源码前保留基线。
返回顶部