解决方案 · MetaTrader 桥接

MT4/MT5 外部行情源:在 MetaTrader 里看股票、指数与加密货币

MetaTrader 只能显示券商提供的报价。把 iTick 作为外部行情源,一个轻量 Python 服务即可把实时价格推入 MT5 自定义品种(或 MT4 桥),在美股、港股、全球指数和加密货币上看盘、预警、运行 EA。

  • 通过 CustomTicksAdd 把实时 Tick 写入 MT5 自定义品种
  • MT4 可通过离线图表或桥接插件接入
  • 股票、全球指数、外汇、贵金属、加密货币
  • 历史K线回填图表,用于 EA 测试
# Python bridge: iTick WebSocket -> ZeroMQ PUB -> MetaTrader EA
import json, time, websocket, zmq   # pip install websocket-client pyzmq

pub = zmq.Context().socket(zmq.PUB)
pub.bind("tcp://127.0.0.1:5556")          # EA subscribes here

def on_message(ws, msg):
    d = json.loads(msg).get("data") or {}
    if d.get("s") and "ld" in d:
        # one line per tick: SYMBOL time_ms bid ask last
        bid, ask = d.get("b", d["ld"]), d.get("a", d["ld"])
        pub.send_string(f'{d["s"]} {d.get("t", int(time.time()*1000))} {bid} {ask} {d["ld"]}')

def on_open(ws):
    ws.send(json.dumps({"ac": "subscribe",
                        "params": "AAPL$US,NVDA$US,700$HK",
                        "types": "quote"}))

while True:  # auto-reconnect
    websocket.WebSocketApp("wss://api.itick.org/stock", header={"token": "YOUR_API_TOKEN"},
                           on_open=on_open, on_message=on_message).run_forever(ping_interval=20)
    time.sleep(3)
WS实时推送到 MT
50+可接入交易所
1分钟+历史数据回填
Python开放桥接示例

为什么把 iTick 桥接进 MetaTrader

保留熟悉的平台和 EA,扩展背后的品种和数据质量。

券商没有的品种

美股、港股、亚洲指数与加密货币作为自定义品种,与外汇图表并列。

解决境外行情延迟

用直连实时行情替代缓慢或延迟的境外报价。

在新市场运行 EA

现有 EA 和指标直接挂到桥接品种上,无需重写。

回填历史

用 CustomRatesUpdate 把 K 线历史写入自定义品种,供指标与策略测试器使用。

稳定的桥接

自动重连的 WebSocket 客户端、心跳,以及本地分发给多个终端。

干净一致的 Tick

所有市场统一格式的买价、卖价、成交价与毫秒时间戳。

桥接如何工作

四个小组件,全部运行在你的 VPS 或电脑上。

  1. 1

    iTick WebSocket

    订阅 AAPL$US、700$HK 等品种。

  2. 2

    Python 桥接服务

    标准化 Tick,通过本地 ZeroMQ 发布。

  3. 3

    MT5 EA / MT4 插件

    接收 Tick,用 CustomTicksAdd 或桥接插件写入。

  4. 4

    图表与 EA

    自定义品种实时更新,指标与 EA 照常运行。

MT5 与 MT4 接入对比

MT5 原生支持自定义品种,MT4 需要变通方案。

MetaTrader 5MetaTrader 4
实时价格自定义品种 + CustomTicksAdd离线图表或第三方桥接插件
历史回填CustomRatesUpdate 写入 iTick K线写入 .hst 历史文件
运行 EA支持,挂在自定义品种上支持,挂在离线图表上
策略测试器支持自定义品种有限

下单仍通过券商执行;若券商没有该品种,桥接品种用于看盘、信号与分析。

桥接示例代码

Python 发布端,以及把 Tick 写入自定义品种的 MQL5 端。

  1. 免费获取 iTick API Token
  2. 在 MetaTrader 所在机器上运行 Python 桥接
  3. 挂载 EA,创建并更新自定义品种
# Python bridge: iTick WebSocket -> ZeroMQ PUB -> MetaTrader EA
import json, time, websocket, zmq   # pip install websocket-client pyzmq

pub = zmq.Context().socket(zmq.PUB)
pub.bind("tcp://127.0.0.1:5556")          # EA subscribes here

def on_message(ws, msg):
    d = json.loads(msg).get("data") or {}
    if d.get("s") and "ld" in d:
        # one line per tick: SYMBOL time_ms bid ask last
        bid, ask = d.get("b", d["ld"]), d.get("a", d["ld"])
        pub.send_string(f'{d["s"]} {d.get("t", int(time.time()*1000))} {bid} {ask} {d["ld"]}')

def on_open(ws):
    ws.send(json.dumps({"ac": "subscribe",
                        "params": "AAPL$US,NVDA$US,700$HK",
                        "types": "quote"}))

while True:  # auto-reconnect
    websocket.WebSocketApp("wss://api.itick.org/stock", header={"token": "YOUR_API_TOKEN"},
                           on_open=on_open, on_message=on_message).run_forever(ping_interval=20)
    time.sleep(3)

MetaTrader 行情桥接常见问题

能在 MT5 里添加券商没有的股票吗?

可以,作为自定义品种用于看盘和分析。MT5 允许 EA 创建自定义品种并用 CustomTicksAdd 推入 Tick,实时价格由 iTick 提供。

MT4 能用吗?

MT4 没有原生自定义品种,需要通过离线图表或桥接插件显示,Python 桥接端完全相同。

桥接的品种可以交易吗?

订单由券商执行。若券商未上架该品种,可用桥接品种生成信号,再在可交易的品种上下单。

iTick 提供桥接程序吗?

iTick 提供行情 API 与桥接示例代码;如需为机构定制或托管桥接,请联系我们。

把新市场放进你的 MetaTrader 图表

免费获取 API Key,几分钟跑通桥接示例。