解決方案 · 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,幾分鐘跑通橋接示例。