返回市场
元交易-MCP

元交易-MCP

作者:chymian16 星标更新:2025-04-13

项目介绍

MetaTrader 5 MCP 服务器与 Distrobox 自动化

本项目提供了一个完全自动化的流程,用于运行、优化和记录使用 Distrobox 容器、Flask REST API 和 MCP 服务器的 MetaTrader 5 (MT5) 专家顾问 (EAs)。


功能

  • Wine/Distrobox 中的 MetaTrader 5: 自动设置和启动。
  • Flask REST API: 通过编程方式优化 EAs,包括运行、监控和保存结果的端点。
  • MCP 服务器: 统一的交易、优化和结果检索接口。
  • 自动化文档: 优化结果以清晰的 HTML 和 Markdown 报告形式保存给每个 EA。
  • Git 版本控制: 所有代码和配置从一开始就进行版本控制。

快速开始

1. Distrobox 容器设置

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

distrobox-assemble create --file src/mt5.ini -R
distrobox-enter mt5
  • 请参阅 src/mt5.ini 获取完整的自动化 Distrobox 配置。
  • 在创建容器时,会安装和配置以下内容:
    • Wine, MT5, Python3, pip, Flask, MetaTrader5, pandas, jinja2, git 和所有必需的工具。
    • 自动启动 Flask API。
    • 初始化一个 Git 仓库并将所有文件提交。

2. Flask 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_account_info, create_order 等)
    • 优化操作(run_optimization, get_optimization_status, get_optimization_results, save_optimization_results)

4. 使用示例

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

工作目录与配置

默认情况下,所有日志、数据、结果和输出都存储在 ~/mt5-dev 中,以便于移植和一致性。 要覆盖本地开发中的任何配置值,请将 src/mt5.ini 复制到 src/mt5-dev.ini 并根据需要自定义。 src/mt5-dev.ini 文件被 Git 忽略,不会被跟踪或推送。