MQL 编译器

在 Linux 上使用 Docker 中的 MetaQuotes MetaEditor 编译 MQL4 和 MQL5 源文件,然后检查结构化构建结果。

psyb0t
2026年10月13日
0 收藏
112 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install mql-compiler

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-mql-compiler。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 MQL 编译器
Slug mql-compiler
创建者 psyb0t
创建时间 2026-10-13 05:49:30
更新时间 2026-10-13 05:49:30
收藏数 0
使用量 112
浏览量 2

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install mql-compiler
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 mql-compiler。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

MQL Compiler 是一款 Openclaw Skills 工具,用于在 Linux 上构建 MetaTrader 4 和 MetaTrader 5 源代码。它在 psyb0t/mql-compiler Docker 镜像中通过 Wine 运行 MetaQuotes 自有的 MetaEditor,因此编译无需 Windows、MetaTrader 终端或交易账户。它需要运行在 x86-64 (amd64) 机器上的 Docker;目前没有 ARM 镜像。
可编译单个文件,也可递归扫描文件夹中的 .mq4 和 .mq5 源文件。该技能根据每个文件的扩展名选择 MT4 或 MT5,在源文件旁生成 .ex4 或 .ex5,并输出代理可解析的 JSON Lines 诊断信息,以准确报告错误、警告和构建状态。

应用场景

无需切换到 Windows 环境即可编译单个
.mq4
.mq5
文件。
构建项目目录树中的所有 MQL4 或 MQL5 源文件,包括嵌套文件夹。
在开发过程中验证 Expert Advisors、指标、脚本和库。
将编译检查加入 AI 辅助编码工作流,并报告错误的准确源代码位置。
使用可重复的 -I 选项测试使用共享包含目录的更改。 --werror 要求构建结果不含警告。
在构建或代理运行前使用 --setup 提前准备编译器工具链。

工作原理

代理使用源文件、文件夹或不带路径的方式调用 mql-compiler,不带路径时使用当前文件夹。
命令会验证路径并查找 .mq4 和 .mq5 文件。文件夹会被递归搜索;直接传入 .mqh 文件以及没有源文件的运行都会被拒绝。
文件扩展名决定使用 MT4 还是 MT5 MetaEditor 编译器。Docker 提供隔离的 Wine 环境,并将已安装的平台工具链缓存在 mql-compiler-cache 卷中。
包含目录由平台标准库、可选的 -I 目录以及最近的匹配 MQL4 或 MQL5 项目目录组成。带引号的包含文件会从源文件旁解析。
文件会在单个容器中逐一编译。某个文件编译失败不会妨碍后续文件继续编译。
命令会将成功生成的 .ex4 或 .ex5 文件写到源文件旁,并为每个源文件输出一条 JSON Lines 文件记录,最后输出汇总信息。
代理读取每条记录的状态和消息,报告警告及准确的错误位置,并根据退出代码和汇总信息判断整个运行是否成功。

配置指南

要求:Docker 和 x86-64 (amd64) 机器。目前没有 ARM 镜像。如果 PATH 中尚无此命令,请为当前用户安装:
curl -fsSL https://raw.githubusercontent.com/psyb0t/docker-mql-compiler/master/install.sh | bash
安装程序会将 mql-compiler 放到 ~/.local/bin;如有需要,请将该目录加入 PATH。编译前准备好 MT4 和 MT5 工具链;在构建超时时间受限时,这样做尤其有用:
mql-compiler --setup
编译当前目录树、指定文件或选定目录:
mql-compiler
mql-compiler /abs/path/MQL5/Experts/Foo.mq5
mql-compiler MQL5/Indicators MQL4
mql-compiler -I /path/to/shared/lib MQL5
mql-compiler --werror MQL5
首次编译时,只会下载并安装源文件所需的平台,并解压其标准库;初始设置预计需要约一分钟半。后续运行通常只需几秒。使用 --mt4-terminal DIR 或 --mt5-terminal DIR,即可通过便携式终端的 MetaEditor 和标准库进行编译;该终端必须至少启动过一次。有关升级、卸载、自定义安装程序和故障排除,请参阅该技能的 references/installation.md。

数据架构

该技能不定义项目数据库,也不会生成独立的元数据文件。其主要构建产物和输出如下:
项目 组织方式和行为
源文件输入 .mq4 和 .mq5 文件,可直接提供,也可从文件夹中递归查找。
编译输出 .ex4 或 .ex5 文件,使用相同的基本名称写入源文件旁。编译前会立即删除旧输出;运行结束后,只有编译成功的文件才会有输出。
项目布局 将源文件放在类似终端目录结构的 MQL4 或 MQL5 目录树下,并将头文件放在对应的 Include 目录中。最近的匹配平台文件夹决定项目包含文件和资源的根目录。
包含文件 尖括号包含文件依次使用平台标准库、可重复指定的 -I 目录,以及最近的项目 Include 目录;后面的层级优先级更高。带引号的包含文件相对于源文件解析。
每文件 JSON Lines 记录 包含 source、platform、status、output、errors、warnings 和 messages;如果 MetaEditor 没有写入结果,还会包含原始 log 行。每条消息可包含 severity、file、line、column、code 和 text。
运行汇总 最后一条 summary 记录包含 total、compiled、failed 和 werror。启动失败时则会生成包含 message 的 error 记录。
版本信息 --version、--setup 和 --update 会报告工具版本以及 MT4/MT5 MetaEditor 构建版本。
Docker 缓存和日志 工具链存储在 mql-compiler-cache 卷中。上次运行的 stdout 和 stderr 副本保存在该卷的 /c/uid-/logs/last-run.log 下。
退出代码:0 表示所有文件均已编译;1 表示至少一个文件失败,包括使用 --werror 时出现警告的情况;2 表示输入无效、没有源文件或工具链设置失败;125 和其他 Docker 代码表示 Docker 层面的故障。请解析 JSON Lines,而不要抓取面向用户的文本。

高级特性

结构化诊断:
JSON Lines 提供机器可读的逐文件状态、编译器消息、源代码位置和最终运行汇总; --format json|text|gnu --text 控制输出格式,默认格式为 JSON。
警告强制处理: --werror 会将警告计为失败,同时仍会保留警告消息以供报告。
灵活的包含目录配置: -I DIR --include DIR 添加一个或多个外部包含目录。
便携式终端工具链: --mt4-terminal DIR --mt5-terminal DIR 选择现有终端的 MetaEditor 和标准库;必须至少启动过该终端一次,才能解压其标准库。
监视模式: --watch 会在更改后重新编译,直到被停止。它不会自行退出,不应在代理运行中使用。
工具链生命周期控制: --setup 会安装工具链但不进行编译; --update 会使用最新构建版本重新安装 MT4 和 MT5; --version 会报告镜像和 MetaEditor 版本。
安全的批处理行为:
单个容器会按顺序处理整个文件列表,在单个文件编译失败后继续运行,并避免只会相互等待的并行运行。
代理报告指南:
使用每条消息中的 file、line、column、code 和 text 报告错误。只有当记录显示
status: ok
时,才将单个文件视为成功;只有当退出代码为 0 且汇总显示
failed: 0
时,才能声称整个构建成功。


name: mql-compiler description: "Compile MQL4 (.mq4) and MQL5 (.mq5) sources to .ex4/.ex5 on Linux with the mql-compiler command, and read its compile errors." homepage: https://github.com/psyb0t/docker-mql-compiler
user-invocable: true