Tushare 替代方案:A 股與港股實時行情數據接口(Python 示例)

Tushare 替代方案:A 股與港股實時行情數據接口(Python 示例)
Tushare 是最受歡迎的中國市場 Python 數據接口之一,尤其擅長研究數據集和基本面。當策略從研究走向日內或實盤交易時,很多量化開發者會用實時行情源來搭配甚至替代它。下面對比 Tushare Pro 與 iTick。
Tushare Pro 的權限機制
Tushare Pro 通過積分制開放數據權限:日線數據基礎積分即可獲取,更豐富的數據集需要更高積分,分鐘級數據需要單獨開通權限。規則會調整,請以 tushare.pro 最新説明為準。
Tushare Pro 與 iTick 對比
| iTick | Tushare Pro | |
|---|---|---|
| 開通方式 | 免費套餐 + 月度訂閲 | 積分制權限 |
| 日線數據 | 有 | 有(基礎積分) |
| 分鐘數據 | 已包含 | 需單獨開通 |
| 實時推送 | WebSocket(報價、逐筆、深度) | 以 HTTP 拉取為主 |
| Level 2 盤口 | 有 | 無 |
| 研究數據集與基本面 | 核心財務數據 | 非常豐富 |
| 港股、美股、外匯、加密貨幣 | 實時 | 部分 |
常見組合:Tushare 獲取基本面與研究數據集,iTick 獲取實時與日內行情。
用 Python 獲取 A 股報價與分鐘K線
上海用 region=SH,深圳用 SZ,香港用 HK。
import requests, pandas as pd
H = {"accept": "application/json", "token": "YOUR_API_TOKEN"}
for region, code in [("SH", "600519"), ("SZ", "000001"), ("HK", "700")]:
q = requests.get("https://api.itick.org/stock/quote",
params={"region": region, "code": code}, headers=H).json()["data"]
print(region, code, q["ld"])
# 贵州茅台 1 分钟K线
bars = requests.get("https://api.itick.org/stock/kline",
params={"region": "SH", "code": "600519", "kType": 1, "limit": 240},
headers=H).json()["data"]
df = pd.DataFrame(bars).rename(columns={"t": "time", "o": "open", "h": "high",
"l": "low", "c": "close", "v": "volume"})
df["time"] = pd.to_datetime(df["time"], unit="ms")
print(df.tail())
通過 WebSocket 接收 A 股實時逐筆
import json, websocket
def on_open(ws):
ws.send(json.dumps({"ac": "subscribe",
"params": "600519$SH,000001$SZ,700$HK",
"types": "quote,tick,depth"}))
ws = websocket.WebSocketApp("wss://api.itick.org/stock",
header={"token": "YOUR_API_TOKEN"},
on_open=on_open,
on_message=lambda ws, m: print(json.loads(m)))
ws.run_forever(ping_interval=20)
用這些數據做回測,可參考 Python 回測入門(使用 iTick 歷史數據)。
常見問題
**Tushare 是什麼?**廣泛用於中國市場研究的 Python 金融數據接口,Tushare Pro 按積分開放權限。
**有提供 A 股實時數據的 Tushare 替代嗎?**有,iTick 提供滬深港股票的實時報價、逐筆成交與 Level 2 深度。
**在 iTick 獲取分鐘數據需要積分嗎?**不需要,分鐘K線是股票 API 的一部分。
**可以同時用 iTick 和 Tushare 嗎?**可以,很多團隊就是這樣搭配的。
免費獲取 iTick API Key,幾分鐘內查詢滬深港股票行情。