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,几分钟内查询沪深港股票行情。