解決方案 · 量化交易

量化交易行情方案:從回測到實盤,一個 API 打通

用歷史K線與Tick數據回測,再通過 WebSocket 在相同品種上實盤運行。iTick 以統一格式覆蓋股票、外匯、加密貨幣、指數與期貨,研究代碼與執行網關無需對接第二家數據商。

  • 歷史 OHLCV 與 Tick,直接用於 Backtrader、VectorBT、vn.py
  • WebSocket 推送報價、逐筆與 Level 2 深度,驅動實盤信號
  • 跨市場價差與套利實時監控
  • 美股、港股、A 股、外匯、加密貨幣、期貨統一代碼格式
import requests, pandas as pd

H = {"accept": "application/json", "token": "YOUR_API_TOKEN"}

def bars(asset, region, code, ktype=8, limit=1000):
    r = requests.get(f"https://api.itick.org/{asset}/kline", headers=H,
                     params={"region": region, "code": code, "kType": ktype, "limit": limit})
    df = pd.DataFrame(r.json()["data"]).rename(columns={"t": "time", "o": "open",
         "h": "high", "l": "low", "c": "close", "v": "volume"})
    df["time"] = pd.to_datetime(df["time"], unit="ms")
    return df.set_index("time")

# Same loader for stocks, forex and crypto - one data source for every backtest
df = bars("stock", "US", "AAPL")
df["fast"], df["slow"] = df.close.rolling(10).mean(), df.close.rolling(30).mean()
df["pos"] = (df.fast > df.slow).astype(int).shift()
equity = (1 + df.close.pct_change() * df.pos).cumprod()
print("strategy return:", round(equity.iloc[-1] - 1, 4))
# Feed df straight into Backtrader (bt.feeds.PandasData), VectorBT or vn.py
6大資產類別,統一格式
1分鐘-月線K線週期
Tick + L2執行級顆粒度
REST + WS研究與實盤

可以搭建什麼

大多數量化團隊需要的三個核心模塊,共用同一套數據。

策略回測平台

拉取任意支持市場的多年日線或日內分鐘K線,載入 Python / Java 回測框架。

實盤策略執行網關

訂閲報價、逐筆與深度,信號觸發後對接券商或交易櫃枱下單。

多市場套利監控

對比跨市場價格與盤口:期現價差、ETF 與標的,價差擴大即告警。

適配各類策略

日內、網格、均值迴歸、雙均線、RSI、馬丁等策略,數據源與策略無關。

無需逐個對接交易所

一個 Token、一種 JSON 格式,取代與每個交易所的單獨連接。

研究即生產

回測用的品種和字段就是實盤交易的品種和字段,實盤表現與研究一致。

參考架構

量化團隊如何把 iTick 接入策略全生命週期。

  1. 1

    採集歷史

    REST /kline 與 Tick 歷史落地到 Parquet 或數據庫。

  2. 2

    策略回測

    在 Backtrader、VectorBT 或 vn.py 中基於存儲的K線回測。

  3. 3

    實時訂閲

    WebSocket 訂閲相同品種的 quote / tick / depth。

  4. 4

    信號與執行

    策略引擎生成訂單,發送至券商或交易櫃枱。

需要的數據與對應接口

全部數據使用同一個 Token。

需求iTick 接口典型用途
日 / 周 / 月K線REST /{asset}/kline kType 8-10波段與中長線回測
日內K線REST /{asset}/kline kType 1-7日內回測與信號
逐筆成交REST /{asset}/tick,WebSocket tick微觀結構與高頻研究
盤口深度REST /{asset}/depth,WebSocket depth執行與滑點建模
實時報價WebSocket quote實盤信號與風控校驗

用 Python 從研究走到實盤

一個加載函數適配所有市場,再實時訂閲相同品種。

  1. 免費獲取 API Token
  2. 下載歷史數據並回測
  3. 通過 WebSocket 訂閲並執行信號
import requests, pandas as pd

H = {"accept": "application/json", "token": "YOUR_API_TOKEN"}

def bars(asset, region, code, ktype=8, limit=1000):
    r = requests.get(f"https://api.itick.org/{asset}/kline", headers=H,
                     params={"region": region, "code": code, "kType": ktype, "limit": limit})
    df = pd.DataFrame(r.json()["data"]).rename(columns={"t": "time", "o": "open",
         "h": "high", "l": "low", "c": "close", "v": "volume"})
    df["time"] = pd.to_datetime(df["time"], unit="ms")
    return df.set_index("time")

# Same loader for stocks, forex and crypto - one data source for every backtest
df = bars("stock", "US", "AAPL")
df["fast"], df["slow"] = df.close.rolling(10).mean(), df.close.rolling(30).mean()
df["pos"] = (df.fast > df.slow).astype(int).shift()
equity = (1 + df.close.pct_change() * df.pos).cumprod()
print("strategy return:", round(equity.iloc[-1] - 1, 4))
# Feed df straight into Backtrader (bt.feeds.PandasData), VectorBT or vn.py

量化交易數據常見問題

iTick 支持哪些回測框架?

任何能讀取 pandas DataFrame 或 CSV 的框架都可以,包括 Backtrader、VectorBT、vn.py 以及自研 Java 回測引擎。

可以用 Tick 數據回測嗎?

可以。支持市場提供逐筆成交與盤口深度,同時提供 1 分鐘至月線的K線。

iTick 能直接下單嗎?

不能。iTick 是行情數據服務商,策略引擎使用 iTick 數據,再把訂單發送到你的券商或交易系統。

一個套餐能同時覆蓋股票、外匯和加密貨幣嗎?

可以。綜合套餐用一個 Token 覆蓋股票、外匯、貴金屬、指數與加密貨幣,限額詳見價格頁。

今天回測,明天用同一份數據實盤

免費 API Key 起步,策略上線時再升級付費套餐。