MetaTrader 5自动化交易系统

一个基于Distrobox容器、Flask REST API和MCP服务器的MetaTrader 5自动化交易系统,用于运行、优化和记录专家顾问(EAs)的交易策略。

  • by chymian
  • TypeScript
  • 本地部署
  • 27 星标
  • 更新于
在 GitHub 查看 chymian/metatrader-mcp

使用说明

MetaTrader 5 MCP服务器和Distrobox自动化

该项目使用Distrobox容器、Flask REST API和MCP服务器,为MetaTrader 5(MT5)Expert Advisors(EA)的运行、优化和记录提供了一个完全自动化的工作流程。


特性

  • 葡萄酒/Distrobox中的MetaTrader 5:自动设置和启动。
  • 烧瓶REST API:EA的程序化优化,具有用于运行、监控和保存结果的端点。
  • MCP服务器:用于交易、优化和结果检索的统一界面。
  • 自动文档:优化结果保存为每个EA的清晰HTML和Markdown报告。
  • Git版本控制:所有代码和配置从一开始就进行版本控制。

快速启动

1.Distrobox容器设置

要组装并输入Distrobox容器,请从项目根运行以下命令:

distrobox-assemble create --file src/mt5.ini -R
distrobox-enter mt5
  • 看 src/mt5.ini 以实现完整、自动化的Distrobox配置。
  • 在创建容器时,将安装和配置以下内容:
    • Wine、MT5、Python 3、pip、Flask、MetaTrader 5、pandas、jinja2、git以及所有必需的工具。
    • Flask API自动启动。
    • 初始化git存储库并提交所有文件。

2.烧瓶REST API

  • 位于 src/mt5_flask_api.py.
  • API可从位于的主机访问 http://localhost:5000 (默认情况下,端口5000已发布;请参阅 src/mt5.ini).
  • 示例:使用以下工具从主机系统测试API:
    curl http://localhost:5000/optimization_status/some-id
    
  • 终点:
    • POST /optimize:开始优化运行。
    • GET /optimization_status/<id>:检查优化状态。
    • GET /optimization_results/<id>:获取结果。
    • POST /save_results:将结果另存为HTML/Markdown/CSV/JSON。
  • 结果保存到 ~/mt5-dev/result/manual/tuning/<EA_NAME>_tuning.html 和 .md.

3.MCP服务器

  • 看 src/mt5-server.ts 用于MCP服务器实现。
  • 工具包括:
    • 交易操作(get_count_info、create_order等)
    • 优化操作(运行优化、获取优化状态、获取优化结果、保存优化结果)

4.使用示例

  • 启动容器(Distrobox将运行所有设置并启动Flask API)。
  • 使用MCP服务器触发优化并生成报告。
  • 在中打开HTML/MaMarkdown报告 ~/mt5-dev/result/manual/tuning/ 以获得清晰的概述。

工作目录和配置

默认情况下,所有日志、数据、结果和输出都存储在 ~/mt5-dev 为了便携性和一致性。
要覆盖本地开发的任何配置值,请复制 src/mt5.ini 向 src/mt5-dev.ini 并根据需要进行定制。
这 src/mt5-dev.ini git会忽略该文件,不会对其进行跟踪或推送。