MQL5自动编译修复工具

MQLoop是一个MCP服务器,通过LLM工具自动生成、修改和编译MQL5代码,实现自动化的编译-修复循环,直到代码编译成功。

  • by Double-Aces
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Double-Aces/MQLoop

使用说明

MQ循环

目的

MCP服务器,使用任何LLM驱动的编码工具自动化MQL5开发。 增加你的睡眠时间。

运作原理

MQLoop提供了一个编译修复循环:您的LLM生成MQL5代码,MQLoop通过MetaEditor对其进行编译,解析错误,并将其反馈给LLM进行自动更正——最多30次迭代,直到代码编译干净。

需求

  • MetaTrader 5 已安装(提供 metaeditor64.exe)
  • Python 3.8+
  • 视窗 (本机或WSL2)--MetaEditor仅适用于Windows

文件

文件 描述
MQLoop.py MCP服务器(主程序)
mqloop_config.json 用户配置(必填)
mqloop_rules.md 注入LLM上下文的编码规则(可选)

设置

0.文件放置

将所有文件放在同一目录中:

  • MQLoop.py

  • mqloop_rules.md

  • mqloop_config json

  • sound.mp3(在mqloop_config.json中指定的声音文件)

  • mqloop_rules.md

  • 声音.mp3 是可选的——服务器在没有它们的情况下工作。

1.配置 mqloop_config.json

编辑 mqloop_config.json 与位于同一目录中 MQLoop.py:

{
    "meta_editor_path": "/path/to/metaeditor64.exe",
    "max_iterations": 30,
    "sound_file_name": "sound.mp3"
}

必修的:

  • meta_editor_path --完整路径 metaeditor64.exe

可选:

  • max_iterations --最大编译修复循环计数(默认值:30)
  • sound_file_name --完成时播放的声音文件(放置在同一目录中;默认值: sound.mp3).播放任何兼容MediaPlayer的格式(例如wav、mp3、wma)。如果文件不存在,则不播放声音。

按环境列出的路径示例:

WSL2:

{
    "meta_editor_path": "/mnt/c/Program Files/MetaTrader 5/metaeditor64.exe"
}

Windows本机:

{
    "meta_editor_path": "C:\\Program Files\\MetaTrader 5\\metaeditor64.exe"
}

2.注册为MCP服务器

将MQLoop添加到LLM工具的MCP配置中。 如果您的LLM工具为MCP设置提供了CLI命令,建议使用该命令。

克劳德代码(CLI命令) 安装了python3的WSL2示例。 调整路径和python命令以匹配您的环境。

claude mcp add --scope user MQLoop python3 /mnt/e/MQLoop/MQLoop.py

克劳德代码 (.mcp.json):

{
    "mcpServers": {
        "mqloop": {
            "command": "python3",
            "args": ["/path/to/MQLoop.py"]
        }
    }
}

光标 (.cursor/mcp.json):

{
    "mcpServers": {
        "mqloop": {
            "command": "python3",
            "args": ["/path/to/MQLoop.py"]
        }
    }
}

克莱恩 (cline_mcp_settings.json):

{
    "mcpServers": {
        "mqloop": {
            "command": "python3",
            "args": ["/path/to/MQLoop.py"]
        }
    }
}

Windsurf/Continue.dev/Codex CLI/Gemini CLI: 请参阅每个工具的MCP配置文档。服务器命令相同:

python3 /path/to/MQLoop.py

3.编码规则(可选)

创建 mqloop_rules.md 与位于同一目录中 MQLoop.py 定义编码约定。内容会自动注入到每个LLM响应中,确保规则即使在上下文压缩后也能保持不变。

例子:

- Use dot operator (.) instead of pointer operator (->) for all member access.
- Place configurable variables at the top of each function/class.
- Include a description and usage instructions at the top of every file.

工具

MQLoop通过MCP公开了4个工具:

工具 说明
mql__create 初始化一个新的MQL5文件。提供描述;LLM生成代码并通过以下方式保存 mql__save.
mql__modify 加载现有 .mq5 文件进行修改。需要 filepath.
mql__save 将生成/修改的代码保存到文件中。需要 code 和 filepath.
mql__compile 通过MetaEditor编译并返回结果。出现错误时,返回错误详细信息和LLM要修复的完整源代码。

工作流程

LLM generates code
        |
        v
  mql__save  -->  file.mq5
        |
        v
  mql__compile  -->  MetaEditor
        |
        v
   Errors? ----yes----> Return errors + source to LLM
        |                        |
        no                       v
        |                LLM fixes code
        v                        |
   Success!                      v
   (sound plays)          mql__save (loop back)

循环会自动继续,直到编译成功或 max_iterations 已达到。

平台支持

环境 状态
WSL2 完全支持(自动检测)
Windows本机 完全支持(自动检测)
Linux(裸版) 不支持(MetaEditor需要Windows)
macOS 不支持(MetaEditor需要Windows)

作者

复赛-2026-03-31 不一致:https://discord.com/channels/1084270069665759303/1084270069665759306

许可证

麻省理工学院