article
README
🚀 MetaTrader 5 MCP 服务器与 Distrobox 自动化
本项目提供了一套完全自动化的流程,用于运行、优化并记录 MetaTrader 5 (MT5) 专家顾问 (EA)。借助 Distrobox 容器、Flask REST API 以及 MCP 服务器,能高效完成相关操作。
🚀 快速开始
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
- 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 报告以获取清晰概述。
✨ 主要特性
- MetaTrader 5 在 Wine/Distrobox 中:实现自动化设置和启动。
- Flask REST API:可程序化优化 EA,提供运行、监控和保存结果的端点。
- MCP 服务器:提供统一接口用于交易、优化和结果检索。
- 自动文档生成:优化结果以 HTML 和 Markdown 报告的形式保存,每个 EA 都有独立记录。
- Git 版本控制:从一开始就对所有代码和配置进行版本化。
📚 详细文档
工作目录与配置
默认情况下,所有日志、数据、结果和输出存储在 ~/mt5-dev 中,确保了便携性和一致性。
若要覆盖任何配置值以进行本地开发,请复制 src/mt5.ini 到 src/mt5-dev.ini 并按需自定义。
src/mt5-dev.ini 文件未被 Git 跟踪或推送。
Scan to contact