QuantDinger 支持通过 MetaTrader 5 终端进行外汇实盘交易。
此功能可通过您的 MetaTrader 5 账户实现外汇的自动化交易执行。配置完成后,您的交易策略可以通过 MT5 API 自动下单。
- MetaTrader 5 外汇账户
- 已安装 MT5 终端(仅支持 Windows)
- 已订阅市场数据(用于实时报价)
MetaTrader5 库已包含在 requirements.txt 中。如需手动安装:
pip install MetaTrader5注意:MetaTrader5 Python 库仅支持 Windows 平台。Linux/Mac 部署请考虑使用 Windows VM 或远程 Windows 服务器。
- 从您的券商或官网下载并安装 MetaTrader 5
- 登录您的交易账户
- 进入 工具 → 选项 → 智能交易系统
- 启用:
- ✅ 允许自动交易
- ✅ 允许 DLL 导入(可选,某些功能可能需要)
- 点击 确定
创建外汇策略时,在"实盘交易"部分配置 MT5 连接:
| 字段 | 说明 | 示例 |
|---|---|---|
| 外汇券商 | 选择"MetaTrader 5" | - |
| 服务器 | 券商服务器名称 | ICMarkets-Demo |
| 账户号 | MT5 登录账号 | 12345678 |
| 密码 | MT5 密码 | **** |
| MT5 终端路径 | 终端路径(可选) | C:\Program Files\MetaTrader 5\terminal64.exe |
注意:如果 MT5 终端安装在默认位置,可以留空"MT5 终端路径"字段。只有在自定义安装位置时才需要填写完整路径。
| 市场 | 格式 | 示例 |
|---|---|---|
| 外汇 | 货币对 | EURUSD, GBPUSD, USDJPY |
| 贵金属 | XAU/XAG 对 | XAUUSD, XAGUSD |
| 指数 | CFD 代码 | US30, US500, DE40 |
注意:代码名称可能因券商而异。部分券商使用后缀,如
EURUSDm、EURUSD.raw等。请查看您券商的代码列表。
| 类型 | 单位 | 示例 |
|---|---|---|
| 标准手 | 100,000 | 1.0 手 = 100,000 EUR |
| 迷你手 | 10,000 | 0.1 手 = 10,000 EUR |
| 微手 | 1,000 | 0.01 手 = 1,000 EUR |
策略信号 → 待执行订单队列 → MT5 执行 → 持仓更新
- 您的策略生成买入/卖出信号
- 信号作为待执行订单入队
- 后台工作线程连接 MT5 并执行订单
- 更新持仓和交易记录
| 信号 | 动作 | 说明 |
|---|---|---|
open_long |
买入 | 开多仓 |
add_long |
买入 | 加多仓 |
close_long |
卖出 | 平多仓 |
reduce_long |
卖出 | 减多仓 |
open_short |
卖出 | 开空仓 |
add_short |
卖出 | 加空仓 |
close_short |
买入 | 平空仓 |
reduce_short |
买入 | 减空仓 |
GET /api/mt5/status # 获取连接状态
POST /api/mt5/connect # 连接到 MT5 终端
POST /api/mt5/disconnect # 断开连接
GET /api/mt5/account # 账户信息
GET /api/mt5/positions # 当前持仓
GET /api/mt5/orders # 未成交订单
GET /api/mt5/symbols # 可用代码列表
POST /api/mt5/order # 下单
POST /api/mt5/close # 平仓
DELETE /api/mt5/order/<id> # 撤单
GET /api/mt5/quote?symbol=EURUSD
# 使用默认终端路径
curl -X POST http://localhost:5000/api/mt5/connect \
-H "Content-Type: application/json" \
-d '{"login": 12345678, "password": "your_password", "server": "ICMarkets-Demo"}'
# 指定自定义终端路径
curl -X POST http://localhost:5000/api/mt5/connect \
-H "Content-Type: application/json" \
-d '{"login": 12345678, "password": "your_password", "server": "ICMarkets-Demo", "terminal_path": "C:\\Program Files\\MetaTrader 5\\terminal64.exe"}'# 买入 0.1 手 EURUSD
curl -X POST http://localhost:5000/api/mt5/order \
-H "Content-Type: application/json" \
-d '{"symbol": "EURUSD", "side": "buy", "volume": 0.1}'
# 卖出 0.5 手 XAUUSD
curl -X POST http://localhost:5000/api/mt5/order \
-H "Content-Type: application/json" \
-d '{"symbol": "XAUUSD", "side": "sell", "volume": 0.5}'curl -X POST http://localhost:5000/api/mt5/order \
-H "Content-Type: application/json" \
-d '{"symbol": "EURUSD", "side": "buy", "volume": 0.1, "orderType": "limit", "price": 1.0800}'curl -X POST http://localhost:5000/api/mt5/close \
-H "Content-Type: application/json" \
-d '{"ticket": 123456789}'- MT5 终端必须运行:交易前确保 MT5 终端已打开并登录
- 仅支持 Windows:MetaTrader5 Python 库仅支持 Windows
- 券商代码名称:代码名称因券商而异,请查看您券商的代码列表
- 先使用模拟账户:使用真实资金前,请先用模拟账户测试
- 交易时间:外汇 24/5 交易,其他品种请查看具体交易时间
- 杠杆:外汇交易使用杠杆,请注意保证金要求
| 错误 | 原因 | 解决方案 |
|---|---|---|
| ImportError | MetaTrader5 未安装 | pip install MetaTrader5 |
| ImportError | 非 Windows 系统 | 使用 Windows 机器或 VM |
| 连接失败 | 终端未运行 | 启动 MT5 并登录 |
| 连接失败 | 凭证错误 | 验证登录账号/密码/服务器 |
| 代码未找到 | 无效代码 | 查看券商的代码列表 |
| 交易被禁用 | 交易未启用 | 在 MT5 选项中启用自动交易 |
| 订单被拒绝 | 保证金不足 | 检查账户余额和保证金 |
在 Docker 中运行 QuantDinger 时,MT5 交易需要:
- Windows 主机:Windows 上的 Docker Desktop 或 Windows Server
- 主机上的 MT5:在 Windows 主机上运行 MT5 终端
- 网络访问:容器必须能访问主机的 MT5 终端
对于 Linux/Mac 部署,请考虑:
- 在 Windows VM 上运行 QuantDinger 后端
- 使用远程 Windows 服务器进行 MT5 连接
- 使用专用交易账户
- 先使用模拟账户测试
- 设置适当的手数和风险限制
- 定期监控您的持仓
- 保持 MT5 终端更新
- 使用强密码