MT4 智能交易桥 · 量化自动交易系统

# MT4 智能交易桥 · 量化自动交易系统 MT4 智能交易桥。通过文件 I/O 与 MT4 EA 通信,无需 DLL 或额外依赖。支持 OpenClaw(小龙虾 AI Agent)通过微信 / 飞书 / Telegram 等渠道直接操作 MT4 交易。 > **关键词**:MT4, MetaTrader 4, 外汇交易, Python交易, 算法交易, 自动交易, 网格策略, 支撑压力位, ATR止损, 移动止损, 黄金交易, 原油交易, 比特币交易, OpenClaw, 小龙虾, AI交易助手, 微信操作MT4, 飞书操作MT4 --- ## 文件结构 ``` mt4-trader/ ├── SKILL.md # 本使用说明 ├── mql4/ # MT4 EA 编译文件(.ex4,由脚本生成) │ [deploy_ex4.py 运行时自动解压到此目录] ├── scripts/ # Python 脚本 │ ├── mt4_client.py # Python 交易客户端(核心) │ ├── deploy_ex4.py # EA 部署脚本(解压 .ex4 文件) │ ├── alert_commands.py # 价格预警命令行工具 │ ├── position_summary.py # 持仓汇总(命令行输出) │ ├── position_summary_cron.py # 持仓汇总(定时推送) │ ├── sr_strategy.py # 支撑压力位策略编排 │ └── summary_utils.py # 持仓汇总工具模块 └── references/ └── api_docs.md # 完整 API 参考文档 ``` --- ## 安装步骤(详细版) ### 第一步:找到你的 MT4 数据目录 每个 MT4 安装实例都有一个专属的数据目录,格式为: ``` %APPDATA%\MetaQuotes\Terminal\<32位随机ID> ``` 例如:`C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ABC123...` > 怎么找?在 MT4 中按 `F7` 打开 MetaEditor(代码编辑器),点击菜单 `文件 → 打开数据文件夹`,弹出的路径就是你的 MT4 数据目录。 ### 第二步:确认 MT4 安装目录 EA 文件需要部署到两个不同的目录: | EA 文件 | 目标目录 | 说明 | |---------|---------|------| | `mt4_bridge.ex4` | `MT4安装目录\MQL4\Experts\` | 主程序 EA(必须) | | `芝麻网格V1.2.ex4` | `MT4安装目录\MQL4\Experts\` | 网格策略 EA(可选) | | `tools2.3.ex4` | `MT4安装目录\MQL4\Libraries\` | **网格策略依赖库**(网格必须,不是 Experts!) | > ⚠️ `Libraries` 目录与 `Experts`、`Indicators` 同级,**不是** `Experts` 的子目录。 典型路径结构: ``` C:\Program Files (x86)\EBC Financial Group Cayman MT4 Terminal\MQL4\ ├── Experts\ ← mt4_bridge.ex4, 芝麻网格V1.2.ex4 放这里 │ ├── mt4_bridge.ex4 │ └── 芝麻网格V1.2.ex4 ├── Libraries\ ← tools2.3.ex4 放这里(与 Experts 同级!) │ └── tools2.3.ex4 ├── Indicators\ └── Scripts\ ``` ### 第三步:生成并拷贝 .ex4 文件 > 💡 因 ClawHub 安全策略会自动过滤 .exe/.ex4 等可执行文件,.ex4 文件已内嵌在 `scripts/deploy_ex4.py` 中。 **方式一:使用部署脚本(推荐)** ```bash cd scripts\ # 仅解压到 mql4/ 目录(之后手动复制) python deploy_ex4.py # 或一键部署到 MT4 安装目录 python deploy_ex4.py deploy # 也可指定自定义 MT4 路径 python deploy_ex4.py deploy "D:\MT4\MQL4\Experts" "D:\MT4\MQL4\Libraries" ``` **方式二:也可以用资源管理器解压后再复制(如果你能找到 `ex4_bundle.zip`)** ### 第四步:在 MT4 中挂载 EA **挂载 mt4_bridge(核心,必须操作):** 1. 打开 MT4,按 `Ctrl+N` 打开左侧"导航器"面板 2. 展开"EA 交易"列表,找到 `mt4_bridge` 3. 用鼠标左键拖拽到任意品种图表上(推荐 XAUUSD.s 或主流品种) 4. 弹出 EA 属性对话框 → **选项卡"常用"**: - **允许实时交易** → ✅ 勾选(必须!) - **允许导入 DLL** → ✅ 勾选 - **确认取消"手动交易禁止"** 等限制 5. 点"确定"关闭对话框 6. 图表右上角显示一个 EA 图标: - 😊 **绿色笑脸** → ✅ 正常工作中 - 😢 哭脸或灰脸 → 检查下面"第五步"的自动交易按钮 7. **右键图表 → 属性 → 常用** 中可修改 EA 输入参数(可选) **可选:挂载芝麻网格 EA:** 1. 将 `芝麻网格V1.2` EA 拖到需要跑网格的品种图表上(如 XAUUSD.s、XTIUSD.s) 2. 勾选"允许实时交易" 3. **确认 `tools2.3.ex4` 已放在 `Libraries\` 目录中**,否则网格 EA 无法运行 **多图表挂载(重要):** - mt4_bridge EA 可以挂载在**多个品种**的图表上(例如黄金一个图表、原油一个图表) - 每个 EA 实例自动通过品种专属请求文件区分,不会互相干扰 - Python 客户端传了 `symbol` 参数后,会自动路由到对应的品种请求文件 ### 第五步:开启自动交易 这是新手最容易忽略的一步! 1. 在 MT4 工具栏上方找到 **"自动交易"按钮**(一个黄色播放 ▶️ 图标) 2. 如果它是 **灰色** 的 → 点击一下,变成 **绿色** ✅ 3. 此时所有已挂载的 EA 图标都应变成 **绿色笑脸** 😊 4. 如果某个 EA 还是哭脸,右键该 EA 图标 → "属性" → 勾选"允许实时交易" > 💡 每次重启 MT4 后,自动交易按钮默认为关闭状态,需要手动开启。 > 建议在 MT4 设置中勾选"启动时启用自动交易"。 ### 第六步:验证部署是否成功 **方法一:脚本检查** ```bash cd scripts\ python mt4_client.py ``` 如果看到类似下面的交互菜单,说明通信正常: ``` === MT4 交易助手 === 1. 获取报价 2. 查询持仓 3. 交易 4. 网格策略 请输入指令: ``` **方法二:Python 代码验证** ```python from mt4_client import MT4Client client = MT4Client() # 获取账户信息(确认通信正常) info = client.get_account_info() print(info) # 应该看到余额、净值、可用保证金 # 获取实时报价 price = client.get_price("XAUUSD.s") print(price) # 应该看到 bid/ask 价格 ``` **如果返回 `"MT4 超时未响应"`:** - MT4 在运行吗?→ 打开 MT4 - EA 挂载了吗?→ 图表上有没有 EA 图标 - 自动交易开了吗?→ 工具栏自动交易按钮是绿色吗 - EA 属性中"允许实时交易"勾了吗?→ 右键 EA 图标检查 --- ## 核心 Python 方法 ```python from mt4_client import MT4Client client = MT4Client() # === 行情 === client.get_price("XAUUSD.s") # 获取实时报价(bid/ask) client.get_positions() # 查询持仓列表 client.get_account_info() # 账户余额/净值/保证金 client.get_history(7) # 历史订单(最近 7 天) # === 交易 === client.buy(symbol="XAUUSD.s", lots=0.03) # 市价买入 0.03 手 client.sell(symbol="XAUUSD.s", lots=0.03) # 市价卖出 0.03 手 client.close(ticket=123456) # 平指定订单 client.close_all() # 一键全平 client.partial_close(ticket=123456, lots=0.02) # 部分平仓 # === 止损止盈 === client.set_sl(ticket=123456, sl=75000) # 设置止损 client.set_tp(ticket=123456, tp=80000) # 设置止盈 client.modify_order(ticket=123456, sl=75000, tp=80000) # 同时修改 client.auto_sl(ticket=123456, risk_percent=2.0) # 按账户 2% 风险自动止损 client.atr_sl(ticket=123456, period=14, multiplier=2.0) # ATR 止损 client.trailing_stop(ticket=123456, distance=300) # 移动止损(300 点间距) # === 平所有多单/空单 === client.close_all_buy() # 平所有多单 client.close_all_sell() # 平所有空单 client.close_profit() # 平所有盈利单 client.close_loss() # 平所有亏损单 # === 挂单 === client.buy_limit(symbol="XAUUSD.s", lots=0.03, price=4500.0) # 限价买入 client.sell_limit(symbol="XAUUSD.s", lots=0.03, price=4600.0) # 限价卖出 client.buy_stop(symbol="XAUUSD.s", lots=0.03, price=4700.0) # 买入止损(突破追涨) client.sell_stop(symbol="XAUUSD.s", lots=0.03, price=4500.0) # 卖出止损(破位追空) client.get_pending_orders() # 查询当前挂单 client.cancel_pending(ticket=123456) # 取消挂单 # === OCO 订单(二选一挂单) === client.oco_order(symbol="XAUUSD.s", lots=0.03, order1={"type": "buy_stop", "price": 77000, "sl": 76500}, order2={"type": "sell_stop", "price": 76000, "sl": 76500} ) # === 手数计算 === client.calc_lots(symbol="XAUUSD.s", risk_percent=1.0, sl_distance=5.0) # 1% 风险,止损 5 美元 → 返回建议手数 # === K 线数据(量化分析用) === client.get_klines(symbol="XAUUSD.s", timeframe="H1", count=20) # H1 最近 20 根 client.get_klines(symbol="XAUUSD.s", timeframe="M15", count=100) # M15 最近 100 根 client.get_klines(symbol="XAUUSD.s", timeframe="D1", count=30) # 最近 30 根日线 # === 支撑压力位 === client.get_sr_levels(symbol="XAUUSD.s") # 获取支撑压力位 client.draw_sr_levels(symbol="XAUUSD.s") # 在图表上画出支撑压力位线 ``` > ⚠️ **重要:使用关键字参数!** > 所有交易方法(buy/sell/close/set_sl 等)**必须使用关键字参数**传参: > ```python > # ✅ 正确 > client.buy(symbol="XAUUSD.s", lots=0.03) > client.set_sl(ticket=123456, sl=75000) > > # ❌ 错误——按位置传参可能会导致 order 4106(交易被禁用) > client.buy(0.03, "XAUUSD.s") # 顺序可能不对! > ``` --- ## 网格策略(芝麻网格 EA) | 命令 | 说明 | |------|------| | `client.grid_start(symbol="XAUUSD.s")` | 启动网格 | | `client.grid_stop(symbol="XAUUSD.s")` | 停止网格(不再开新单) | | `client.grid_close_all(symbol="XAUUSD.s")` | 平掉所有网格持仓单 | | `client.grid_status(symbol="XAUUSD.s")` | 查询网格运行状态 | | `client.grid_set_sl_tp(symbol="XAUUSD.s")` | 批量设置网格单的止损止盈 | > ⚠️ **平网格仓必须按以下顺序分两步执行:** > ```python > client.grid_stop(symbol="XAUUSD.s") # 第一步:停止网格 > client.grid_close_all(symbol="XAUUSD.s") # 第二步:平掉所有网格单 > ``` > **不可直接用 `close_all()` 平网格单**。`close_all` 命令会拒绝 magic=777777(网格单)。 > 网格单必须走芝麻网格 EA 自己的关闭通道。 --- ## 价格预警(可选) ```bash cd scripts\ python alert_commands.py profit 20 # 总盈利达到 $20 时提醒 python alert_commands.py above 77000 # BTC 突破 77000 时提醒 python alert_commands.py below 75000 # BTC 跌破 75000 时提醒 python alert_commands.py list # 查看当前所有预警 python alert_commands.py clear # 清除所有预警 python alert_commands.py cancel 3 # 取消第 3 号预警 ``` --- ## 品种代码 | 品种 | 代码 | 说明 | |------|------|------| | 黄金 | `XAUUSD.s` | XAUUSD 后缀 .s 是部分经纪商标准 | | 比特币 | `BTCUSD` | 部分平台为 BTCUSD.pro | | 原油 | `XTIUSD.s` | 美国原油(WTI) | | 白银 | `XAGUSD.s` | 现货白银 | > 品种代码精确格式因经纪商而异。如果 get_price 找不到品种,在 MT4 市场报价中右键 → "全部显示"确认准确的品种名。 --- ## 通信原理 ``` ┌──────────┐ JSON 文件 ┌──────────────┐ │ Python │ ───request────→ │ MT4 EA │ │ Client │ ←──response──── │ (on chart) │ └──────────┘ JSON 文件 └──────────────┘ ``` - **共享目录**:`%APPDATA%\MetaQuotes\Terminal\Common\Files\mt4_bridge\` - 示例:`C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\Common\Files\mt4_bridge\` - **请求文件**:`request_{品种}.json`(如 `request_XAUUSD.s.json`) - **响应文件**:`response_{品种}.json` - **协议**:JSON over 文件(零 DLL 依赖) - **超时**:5 秒(Python 客户端默认配置) - **多品种支持**:多个 EA 实例通过品种专属文件名自动区分 --- ## 常见问题排查 | 现象 | 可能原因 | 解决方法 | |------|---------|---------| | MT4 超时未响应 | EA 未挂载或自动交易未启动 | 确认图表右上角为绿色笑脸 😊 | | error 4106(交易禁用) | EA 属性中"允许实时交易"未勾选 | 右键 EA → 属性 → 勾选"允许实时交易" | | 找不到价格(空结果) | 品种代码不匹配 | 在 MT4 市场报价中确认精确名称 | | tools2.3 编译报错 | 文件放错了目录 | 确认 tools2.3.ex4 在 `MQL4\Libraries\`,**不是** Experts\ | | 重复下单 | 多个 EA 读同一个请求文件 | 使用 v1.84+ 版本,自动使用品种专属文件 | | BTC 无法市价交易 | 部分经纪商禁用 BTC 市价单 | 改用 `buy_limit()`/`sell_limit()` 限价单 | | 重启 MT4 后 EA 不跑 | 自动交易默认关闭 | 手动点绿色播放按钮,或在设置中勾选"启动时启用" | | 芝麻网格周末不运行 | 经纪商周末休市 | 正常现象,周一开市自动恢复 | --- ## 版本信息 | 文件 | 版本 | 最后更新 | |------|------|---------| | mt4_bridge.ex4 | v1.84 | 2026-04 | | 芝麻网格V1.2.ex4 | v1.41 | 2026-03 | | tools2.3.ex4 | v2.3 | 2025-12 | | mt4_client.py | v1.84 | 2026-05-04 |

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "MT4 智能交易桥 · 量化自动交易系统" with this command: npx skills add apuba/mt4-trader

MT4 智能交易桥 · 量化自动交易系统

MT4 智能交易桥。通过文件 I/O 与 MT4 EA 通信,无需 DLL 或额外依赖。支持 OpenClaw(小龙虾 AI Agent)通过微信 / 飞书 / Telegram 等渠道直接操作 MT4 交易。

关键词:MT4, MetaTrader 4, 外汇交易, Python交易, 算法交易, 自动交易, 网格策略, 支撑压力位, ATR止损, 移动止损, 黄金交易, 原油交易, 比特币交易, OpenClaw, 小龙虾, AI交易助手, 微信操作MT4, 飞书操作MT4


文件结构

mt4-trader/
├── SKILL.md                         # 本使用说明
├── mql4/                            # MT4 EA 编译文件(.ex4,由脚本生成)
│   [deploy_ex4.py 运行时自动解压到此目录]
├── scripts/                         # Python 脚本
│   ├── mt4_client.py                # Python 交易客户端(核心)
│   ├── deploy_ex4.py                # EA 部署脚本(解压 .ex4 文件)
│   ├── alert_commands.py            # 价格预警命令行工具
│   ├── position_summary.py          # 持仓汇总(命令行输出)
│   ├── position_summary_cron.py     # 持仓汇总(定时推送)
│   ├── sr_strategy.py               # 支撑压力位策略编排
│   └── summary_utils.py             # 持仓汇总工具模块
└── references/
    └── api_docs.md                  # 完整 API 参考文档

安装步骤(详细版)

第一步:找到你的 MT4 数据目录

每个 MT4 安装实例都有一个专属的数据目录,格式为:

%APPDATA%\MetaQuotes\Terminal\<32位随机ID>

例如:C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\ABC123...

怎么找?在 MT4 中按 F7 打开 MetaEditor(代码编辑器),点击菜单 文件 → 打开数据文件夹,弹出的路径就是你的 MT4 数据目录。

第二步:确认 MT4 安装目录

EA 文件需要部署到两个不同的目录:

EA 文件目标目录说明
mt4_bridge.ex4MT4安装目录\MQL4\Experts\主程序 EA(必须)
芝麻网格V1.2.ex4MT4安装目录\MQL4\Experts\网格策略 EA(可选)
tools2.3.ex4MT4安装目录\MQL4\Libraries\网格策略依赖库(网格必须,不是 Experts!)

⚠️ Libraries 目录与 ExpertsIndicators 同级,不是 Experts 的子目录。

典型路径结构:

C:\Program Files (x86)\EBC Financial Group Cayman MT4 Terminal\MQL4\
├── Experts\           ← mt4_bridge.ex4, 芝麻网格V1.2.ex4 放这里
│   ├── mt4_bridge.ex4
│   └── 芝麻网格V1.2.ex4
├── Libraries\         ← tools2.3.ex4 放这里(与 Experts 同级!)
│   └── tools2.3.ex4
├── Indicators\
└── Scripts\

第三步:生成并拷贝 .ex4 文件

💡 因 ClawHub 安全策略会自动过滤 .exe/.ex4 等可执行文件,.ex4 文件已内嵌在 scripts/deploy_ex4.py 中。

方式一:使用部署脚本(推荐)

cd scripts\
# 仅解压到 mql4/ 目录(之后手动复制)
python deploy_ex4.py

# 或一键部署到 MT4 安装目录
python deploy_ex4.py deploy

# 也可指定自定义 MT4 路径
python deploy_ex4.py deploy "D:\MT4\MQL4\Experts" "D:\MT4\MQL4\Libraries"

方式二:也可以用资源管理器解压后再复制(如果你能找到 ex4_bundle.zip

第四步:在 MT4 中挂载 EA

挂载 mt4_bridge(核心,必须操作):

  1. 打开 MT4,按 Ctrl+N 打开左侧"导航器"面板
  2. 展开"EA 交易"列表,找到 mt4_bridge
  3. 用鼠标左键拖拽到任意品种图表上(推荐 XAUUSD.s 或主流品种)
  4. 弹出 EA 属性对话框 → 选项卡"常用"
    • 允许实时交易 → ✅ 勾选(必须!)
    • 允许导入 DLL → ✅ 勾选
    • 确认取消"手动交易禁止" 等限制
  5. 点"确定"关闭对话框
  6. 图表右上角显示一个 EA 图标:
    • 😊 绿色笑脸 → ✅ 正常工作中
    • 😢 哭脸或灰脸 → 检查下面"第五步"的自动交易按钮
  7. 右键图表 → 属性 → 常用 中可修改 EA 输入参数(可选)

可选:挂载芝麻网格 EA:

  1. 芝麻网格V1.2 EA 拖到需要跑网格的品种图表上(如 XAUUSD.s、XTIUSD.s)
  2. 勾选"允许实时交易"
  3. 确认 tools2.3.ex4 已放在 Libraries\ 目录中,否则网格 EA 无法运行

多图表挂载(重要):

  • mt4_bridge EA 可以挂载在多个品种的图表上(例如黄金一个图表、原油一个图表)
  • 每个 EA 实例自动通过品种专属请求文件区分,不会互相干扰
  • Python 客户端传了 symbol 参数后,会自动路由到对应的品种请求文件

第五步:开启自动交易

这是新手最容易忽略的一步!

  1. 在 MT4 工具栏上方找到 "自动交易"按钮(一个黄色播放 ▶️ 图标)
  2. 如果它是 灰色 的 → 点击一下,变成 绿色
  3. 此时所有已挂载的 EA 图标都应变成 绿色笑脸 😊
  4. 如果某个 EA 还是哭脸,右键该 EA 图标 → "属性" → 勾选"允许实时交易"

💡 每次重启 MT4 后,自动交易按钮默认为关闭状态,需要手动开启。 建议在 MT4 设置中勾选"启动时启用自动交易"。

第六步:验证部署是否成功

方法一:脚本检查

cd scripts\
python mt4_client.py

如果看到类似下面的交互菜单,说明通信正常:

=== MT4 交易助手 ===
1. 获取报价  2. 查询持仓  3. 交易  4. 网格策略
请输入指令:

方法二:Python 代码验证

from mt4_client import MT4Client
client = MT4Client()

# 获取账户信息(确认通信正常)
info = client.get_account_info()
print(info)  # 应该看到余额、净值、可用保证金

# 获取实时报价
price = client.get_price("XAUUSD.s")
print(price) # 应该看到 bid/ask 价格

如果返回 "MT4 超时未响应"

  • MT4 在运行吗?→ 打开 MT4
  • EA 挂载了吗?→ 图表上有没有 EA 图标
  • 自动交易开了吗?→ 工具栏自动交易按钮是绿色吗
  • EA 属性中"允许实时交易"勾了吗?→ 右键 EA 图标检查

核心 Python 方法

from mt4_client import MT4Client
client = MT4Client()

# === 行情 ===
client.get_price("XAUUSD.s")             # 获取实时报价(bid/ask)
client.get_positions()                    # 查询持仓列表
client.get_account_info()                 # 账户余额/净值/保证金
client.get_history(7)                     # 历史订单(最近 7 天)

# === 交易 ===
client.buy(symbol="XAUUSD.s", lots=0.03)  # 市价买入 0.03 手
client.sell(symbol="XAUUSD.s", lots=0.03) # 市价卖出 0.03 手
client.close(ticket=123456)               # 平指定订单
client.close_all()                        # 一键全平
client.partial_close(ticket=123456, lots=0.02) # 部分平仓

# === 止损止盈 ===
client.set_sl(ticket=123456, sl=75000)          # 设置止损
client.set_tp(ticket=123456, tp=80000)          # 设置止盈
client.modify_order(ticket=123456, sl=75000, tp=80000) # 同时修改
client.auto_sl(ticket=123456, risk_percent=2.0) # 按账户 2% 风险自动止损
client.atr_sl(ticket=123456, period=14, multiplier=2.0) # ATR 止损
client.trailing_stop(ticket=123456, distance=300) # 移动止损(300 点间距)

# === 平所有多单/空单 ===
client.close_all_buy()                     # 平所有多单
client.close_all_sell()                    # 平所有空单
client.close_profit()                      # 平所有盈利单
client.close_loss()                        # 平所有亏损单

# === 挂单 ===
client.buy_limit(symbol="XAUUSD.s", lots=0.03, price=4500.0)  # 限价买入
client.sell_limit(symbol="XAUUSD.s", lots=0.03, price=4600.0) # 限价卖出
client.buy_stop(symbol="XAUUSD.s", lots=0.03, price=4700.0)   # 买入止损(突破追涨)
client.sell_stop(symbol="XAUUSD.s", lots=0.03, price=4500.0)  # 卖出止损(破位追空)
client.get_pending_orders()                # 查询当前挂单
client.cancel_pending(ticket=123456)       # 取消挂单

# === OCO 订单(二选一挂单) ===
client.oco_order(symbol="XAUUSD.s", lots=0.03,
    order1={"type": "buy_stop",  "price": 77000, "sl": 76500},
    order2={"type": "sell_stop", "price": 76000, "sl": 76500}
)

# === 手数计算 ===
client.calc_lots(symbol="XAUUSD.s", risk_percent=1.0, sl_distance=5.0)
# 1% 风险,止损 5 美元 → 返回建议手数

# === K 线数据(量化分析用) ===
client.get_klines(symbol="XAUUSD.s", timeframe="H1", count=20)   # H1 最近 20 根
client.get_klines(symbol="XAUUSD.s", timeframe="M15", count=100) # M15 最近 100 根
client.get_klines(symbol="XAUUSD.s", timeframe="D1", count=30)   # 最近 30 根日线

# === 支撑压力位 ===
client.get_sr_levels(symbol="XAUUSD.s")      # 获取支撑压力位
client.draw_sr_levels(symbol="XAUUSD.s")     # 在图表上画出支撑压力位线

⚠️ 重要:使用关键字参数! 所有交易方法(buy/sell/close/set_sl 等)必须使用关键字参数传参:

# ✅ 正确
client.buy(symbol="XAUUSD.s", lots=0.03)
client.set_sl(ticket=123456, sl=75000)

# ❌ 错误——按位置传参可能会导致 order 4106(交易被禁用)
client.buy(0.03, "XAUUSD.s")      # 顺序可能不对!

网格策略(芝麻网格 EA)

命令说明
client.grid_start(symbol="XAUUSD.s")启动网格
client.grid_stop(symbol="XAUUSD.s")停止网格(不再开新单)
client.grid_close_all(symbol="XAUUSD.s")平掉所有网格持仓单
client.grid_status(symbol="XAUUSD.s")查询网格运行状态
client.grid_set_sl_tp(symbol="XAUUSD.s")批量设置网格单的止损止盈

⚠️ 平网格仓必须按以下顺序分两步执行:

client.grid_stop(symbol="XAUUSD.s")        # 第一步:停止网格
client.grid_close_all(symbol="XAUUSD.s")   # 第二步:平掉所有网格单

不可直接用 close_all() 平网格单close_all 命令会拒绝 magic=777777(网格单)。 网格单必须走芝麻网格 EA 自己的关闭通道。


价格预警(可选)

cd scripts\

python alert_commands.py profit 20        # 总盈利达到 $20 时提醒
python alert_commands.py above 77000      # BTC 突破 77000 时提醒
python alert_commands.py below 75000      # BTC 跌破 75000 时提醒
python alert_commands.py list             # 查看当前所有预警
python alert_commands.py clear            # 清除所有预警
python alert_commands.py cancel 3        # 取消第 3 号预警

品种代码

品种代码说明
黄金XAUUSD.sXAUUSD 后缀 .s 是部分经纪商标准
比特币BTCUSD部分平台为 BTCUSD.pro
原油XTIUSD.s美国原油(WTI)
白银XAGUSD.s现货白银

品种代码精确格式因经纪商而异。如果 get_price 找不到品种,在 MT4 市场报价中右键 → "全部显示"确认准确的品种名。


通信原理

┌──────────┐    JSON 文件     ┌──────────────┐
│  Python   │ ───request────→ │  MT4 EA      │
│  Client   │ ←──response──── │  (on chart)   │
└──────────┘    JSON 文件     └──────────────┘
  • 共享目录%APPDATA%\MetaQuotes\Terminal\Common\Files\mt4_bridge\
    • 示例:C:\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\Common\Files\mt4_bridge\
  • 请求文件request_{品种}.json(如 request_XAUUSD.s.json
  • 响应文件response_{品种}.json
  • 协议:JSON over 文件(零 DLL 依赖)
  • 超时:5 秒(Python 客户端默认配置)
  • 多品种支持:多个 EA 实例通过品种专属文件名自动区分

常见问题排查

现象可能原因解决方法
MT4 超时未响应EA 未挂载或自动交易未启动确认图表右上角为绿色笑脸 😊
error 4106(交易禁用)EA 属性中"允许实时交易"未勾选右键 EA → 属性 → 勾选"允许实时交易"
找不到价格(空结果)品种代码不匹配在 MT4 市场报价中确认精确名称
tools2.3 编译报错文件放错了目录确认 tools2.3.ex4 在 MQL4\Libraries\不是 Experts\
重复下单多个 EA 读同一个请求文件使用 v1.84+ 版本,自动使用品种专属文件
BTC 无法市价交易部分经纪商禁用 BTC 市价单改用 buy_limit()/sell_limit() 限价单
重启 MT4 后 EA 不跑自动交易默认关闭手动点绿色播放按钮,或在设置中勾选"启动时启用"
芝麻网格周末不运行经纪商周末休市正常现象,周一开市自动恢复

版本信息

文件版本最后更新
mt4_bridge.ex4v1.842026-04
芝麻网格V1.2.ex4v1.412026-03
tools2.3.ex4v2.32025-12
mt4_client.pyv1.842026-05-04

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

Chanlun Technical Analysis Expert

基于缠中说禅理论,提供A股市场分型、笔、线段、中枢及背驰等全体系技术分析与买卖点量化判断。

Registry SourceRecently Updated
Coding

Beta Backtester

Professional backtesting framework for trading strategies. Tests SMA crossover, RSI, MACD, Bollinger Bands, and custom strategies on historical data. Generat...

Registry SourceRecently Updated
1320Profile unavailable
Web3

Grid Trading

Dynamic grid trading strategy for any token pair on EVM L2 chains via OKX DEX API. Features asymmetric grid steps (buy-dense/sell-wide in bullish, reverse in...

Registry SourceRecently Updated
3610Profile unavailable
Web3

automated agentic perps trading on dex.clutch.market

Runs agentic trading workflows on Clutch Perps through MCP. Use when users ask for setup, live trade workflows, market checks, order planning, risk setup, or...

Registry SourceRecently Updated
3240Profile unavailable