Skip to content

Latest commit

 

History

History
215 lines (158 loc) · 6.37 KB

File metadata and controls

215 lines (158 loc) · 6.37 KB

MetaTrader 5 (MT5) 外汇实盘交易指南

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 服务器。

MT5 终端配置

  1. 从您的券商或官网下载并安装 MetaTrader 5
  2. 登录您的交易账户
  3. 进入 工具选项智能交易系统
  4. 启用:
    • ✅ 允许自动交易
    • ✅ 允许 DLL 导入(可选,某些功能可能需要)
  5. 点击 确定

策略配置

创建外汇策略时,在"实盘交易"部分配置 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

注意:代码名称可能因券商而异。部分券商使用后缀,如 EURUSDmEURUSD.raw 等。请查看您券商的代码列表。

手数参考

类型 单位 示例
标准手 100,000 1.0 手 = 100,000 EUR
迷你手 10,000 0.1 手 = 10,000 EUR
微手 1,000 0.01 手 = 1,000 EUR

交易流程

策略信号 → 待执行订单队列 → MT5 执行 → 持仓更新
  1. 您的策略生成买入/卖出信号
  2. 信号作为待执行订单入队
  3. 后台工作线程连接 MT5 并执行订单
  4. 更新持仓和交易记录

支持的信号类型

信号 动作 说明
open_long 买入 开多仓
add_long 买入 加多仓
close_long 卖出 平多仓
reduce_long 卖出 减多仓
open_short 卖出 开空仓
add_short 卖出 加空仓
close_short 买入 平空仓
reduce_short 买入 减空仓

API 接口

连接管理

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)

# 使用默认终端路径
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}'

重要说明

  1. MT5 终端必须运行:交易前确保 MT5 终端已打开并登录
  2. 仅支持 Windows:MetaTrader5 Python 库仅支持 Windows
  3. 券商代码名称:代码名称因券商而异,请查看您券商的代码列表
  4. 先使用模拟账户:使用真实资金前,请先用模拟账户测试
  5. 交易时间:外汇 24/5 交易,其他品种请查看具体交易时间
  6. 杠杆:外汇交易使用杠杆,请注意保证金要求

常见问题排查

错误 原因 解决方案
ImportError MetaTrader5 未安装 pip install MetaTrader5
ImportError 非 Windows 系统 使用 Windows 机器或 VM
连接失败 终端未运行 启动 MT5 并登录
连接失败 凭证错误 验证登录账号/密码/服务器
代码未找到 无效代码 查看券商的代码列表
交易被禁用 交易未启用 在 MT5 选项中启用自动交易
订单被拒绝 保证金不足 检查账户余额和保证金

Docker 部署

在 Docker 中运行 QuantDinger 时,MT5 交易需要:

  1. Windows 主机:Windows 上的 Docker Desktop 或 Windows Server
  2. 主机上的 MT5:在 Windows 主机上运行 MT5 终端
  3. 网络访问:容器必须能访问主机的 MT5 终端

对于 Linux/Mac 部署,请考虑:

  • 在 Windows VM 上运行 QuantDinger 后端
  • 使用远程 Windows 服务器进行 MT5 连接

安全建议

  • 使用专用交易账户
  • 先使用模拟账户测试
  • 设置适当的手数和风险限制
  • 定期监控您的持仓
  • 保持 MT5 终端更新
  • 使用强密码

参见