使用说明
MetaTrader 5 MCP服务器
MetaTrader 5的轻量级模型上下文协议(MCP)服务器,提供 真实图表快照 直接从您的MT5终端-无需浏览器自动化!
🌟 特性
- � 真实MT5屏幕截图:使用所有自定义指标从MetaTrader 5终端捕获实际图表
- 💹 市场数据:获取当前价格、点差和交易品种信息
- 🚀 轻量级:智能交易系统+基于文件的通信(无Selenium,无浏览器)
- 🔧 易于集成:与Claude Desktop无缝协作
- 🎨 你看到的就是你得到的:捕获MT5中显示的图表
- ⚡ 快速:通过MQL5的ChartScreenShot函数直接捕获图表
- � 安全:基于文件的通信,不需要网络端口
🏗️ 建筑
该系统采用了一种创新方法:
- MQL5专家顾问:在MT5内部运行,使用以下命令捕获真实图表
ChartScreenShot() - 基于文件的协议:通过共享文本文件的命令/响应(UTF-16LE编码)
- Python MCP服务器:与EA沟通,向Claude Desktop提供图表
- MetaTrader5 API:获取市场数据和交易品种信息
主要优势:使用所有自定义指标、图形和设置捕获真实的MT5图表,与您看到的完全一致!
📋 先决条件
- Windows操作系统 (MetaTrader 5要求)
- MetaTrader 5 已安装(在这里下载)
- Python 3.10+
🚀 快速开始
步骤1:安装依赖项
cd d:\Desktop\metatrader-mcp
pip install -e .
步骤2:安装智能交易系统
-
复制EA:
- 打开MT5→
File→Open Data Folder - 导航至
MQL5\Experts\ - 复制
expert_advisor\MCPChartCapture.mq5到此文件夹
- 打开MT5→
-
编译EA:
- 在MT5中,按下
F4打开MetaEditor - 打开
MCPChartCapture.mq5 - 按
F7编译(应显示“0错误”)
- 在MT5中,按下
-
附加到图表:
- 打开MT5中的任何图表(例如,欧元兑美元H1)
- 在导航器中(
Ctrl+N),扩展Expert Advisors - 拖拽
MCPChartCapture在图表上 - 在对话框中,转到
Common选项卡:- ✅ 允许自动交易
- 点击
OK
-
启用自动交易:
- 点击
AutoTradingMT5工具栏中的按钮(或按Ctrl+E) - 你应该看到一个😊 在图表上
- 点击
步骤3:测试设置
python test_ea_connection.py
预期产量:
✅ Connected to MT5 v5370
✅ EA Response: EA is running
✅ Screenshot saved: output\EURUSD_H1_20251101_024101.png
All tests passed! ✅
步骤4:配置Claude桌面
-
查找配置文件:
- 窗户:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- 窗户:
-
添加MCP服务器:
{ "mcpServers": { "metatrader5": { "command": "python", "args": ["-m", "metatrader_mcp.server"], "cwd": "d:\\Desktop\\metatrader-mcp" } } } -
重新启动克劳德桌面
-
测试它!问克劳德:
Show me a screenshot of EURUSD H1 chart
🛠️ 可用工具
1. capture_chart_screenshot
从MT5终端捕获包含所有指标的真实屏幕截图。
参数:
symbol(string):交易对(例如,“EURUSD”、“XAUUSD”、“BTCUSD”)timeframe(字符串):图表时间范围-M1、M5、M15、M30、H1、H4、D1、W1、MN1
退货:捕获的屏幕截图路径(PNG,1920x1080)
示例:
Capture a screenshot of XAUUSD 15-minute chart
2. list_symbols
从MT5获取可用的交易符号。
参数:
group(字符串,可选):按组筛选(例如,“外汇”、“加密货币”)
退货:带有描述的符号列表
示例:
Show me all Forex symbols
3. get_current_price
获取某个交易品种的实时市场数据。
参数:
symbol(string):交易对
退货:当前出价、要价、点差、时间
示例:
What's the current price of EURUSD?
4. get_timeframes
列出所有支持的时间范围。
退货:可用的时间段代码
📊 支持的时间范围
| 代码 | 描述 |
|---|---|
| M1 | 1分钟 |
| M5 | 5分钟 |
| M15 | 15分钟 |
| M30 | 30分钟 |
| H1 | 1小时 |
| H4 | 4小时 |
| D1 | 每日 |
| W1 | 每周 |
| MN1 | 每月 |
🗂️ 项目结构
metatrader-mcp/
├── expert_advisor/
│ └── MCPChartCapture.mq5 # MQL5 Expert Advisor for chart capture
├── src/
│ └── metatrader_mcp/
│ ├── server.py # Main MCP server
│ ├── mt5_handler.py # MT5 connection & market data
│ └── chart_generator.py # EA communication & screenshot handling
├── output/ # Captured screenshots (auto-created)
├── test_ea_connection.py # Test EA connectivity
├── pyproject.toml # Python dependencies
└── README.md
🔧 故障排除
❌ EA未响应/超时错误
解决方案:
- 检查EA是否附在图表上(您应该看到😊)
- 在MT5中启用自动交易(
Ctrl+E) - 检查专家登录MT5的错误
- 尝试删除并重新连接EA
❌ “MT5初始化失败”
解决方案:
- 验证MT5是否已安装:
C:\Program Files\MetaTrader 5\terminal64.exe - 至少打开一次MT5进行初始化
- 如果是自定义安装路径,请设置
MT5_PATH环境变量
❌ 未找到屏幕截图文件
解决方案:
- 确保EA正在运行(检查😊 在图表上)
- 检查专家日志中的错误
- 验证是否启用了自动交易
- 尝试捕获已打开的图表
❌ “无法获取符号的数据”
解决方案:
- 该符号必须存在于您的MT5中(查看市场观察)
- 符号名称区分大小写
- 首先尝试使用“EURUSD”进行测试
❌ 编码错误/乱码文本
解决方案:这是固定的!该系统使用UTF-16LE编码进行EA通信。
💡 使用示例
使用自定义指标捕获图表
Claude, capture a screenshot of my XAUUSD M15 chart
→ 返回包含所有自定义指标的实际MT5图表!
获取多个图表
Show me charts for EURUSD H1, GBPUSD H4, and XAUUSD M15
查看当前价格
What are the current prices for EURUSD, GBPUSD, and USDJPY?
探索符号
List all available Gold symbols
🧪 测试
运行测试套件:
# Test EA connection
python test_ea_connection.py
# Test chart capture
python take_screenshot.py
# Test specific symbol
python capture_xauusd.py
📝 配置(可选)
创建一个 .env 自定义设置文件:
# Custom MT5 installation path
MT5_PATH=C:\Program Files\MetaTrader 5
# Custom output directory for screenshots
OUTPUT_DIR=./charts
🤝 贡献
欢迎投稿!请随意:
- 报告错误
- 建议功能
- 提交拉取请求
- 改进文档
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件
🙏 致谢
- MetaTrader 5 Python API -用于市场数据访问
- MCP-SDK -模型上下文协议实现
- MQL5社区-用于智能交易系统开发资源
📞 支持
有问题吗?以下是如何获得帮助:
- 运行诊断程序:
python test_ea_connection.py - 查看MT5专家日志:在MT5中查找错误消息
- 验证设置:附EA?是否启用自动交易? 😊 可见?
- 打开一个问题:包括错误消息和系统信息
由以下材料制成❤️ 适用于希望将MT5与Claude AI集成的交易者
没有浏览器自动化。没有硒。纯粹的轻量级MT5图表捕捉!