【Python量化实战全攻略 #06】特色市场接口手册:北交所·科创板·港股通怎么取(附代码)
摘要:【Python量化实战全攻略 #06】特色市场接口手册:北交所·科创板·港股通怎么取(附代码) 手册定位:「数据底座手册」第 6 篇。前面 5 篇聚焦沪深主板,本篇补齐 北交所、科创板、港股通 三类特色市场的取数
手册定位:「数据底座手册」第 6 篇。前面 5 篇聚焦沪深主板,本篇补齐北交所、科创板、港股通三类特色市场的取数——它们端点前缀不同(
bj/tech/ht),但用法与沪深同源。
接口路径取自智兔数服官网文档页已验证路径,未虚构。
1. 你将得到什么
- 北交所股票实时行情、五档盘口、逐笔、历史K线端点;
- 科创板实时行情、五档盘口端点;
- 港股通(沪/深)成分股行情、历史数据、AH 比价、十大成交股端点;
- 把三类市场行情统一成「代码→快照」的通用函数;
- 特色市场的 4 个坑(代码后缀、盘口差异、港股通延迟、北交所流动性)。
2. 取数约定
| 市场 | 代码后缀 | 端点前缀 | 说明 |
|---|---|---|---|
| 北交所 | .BJ |
/bj/ |
920xxx 开头 |
| 科创板 | 无独立后缀(用沪市 .SH) |
/tech/ |
688xxx 开头,仅实时+盘口 |
| 港股通 | 港股代码 | /ht/nbzj/ |
港股通标的,含成分股行情与历史 |
3. 端点分组地图
| 分组 | 端点(GET) | 说明 |
|---|---|---|
| 北交所列表 | /bj/list/all |
全部北交所股票 |
| 北交所实时 | /bj/stock/real/ssjy/{代码} |
快照 |
| 北交所五档 | /bj/stock/real/mmwp/{代码} |
盘口 |
| 北交所逐笔(当天) | /bj/stock/real/zbjy/{代码} |
逐笔 |
| 北交所逐笔(历史) | /bj/stock/real/zbjy/{日期}/{代码} |
历史逐笔 |
| 北交所历史K线 | /bj/history/{代码}.BJ/d/n |
日线 |
| 北交所Pro分钟 | /bj/pro/latest/{代码}.BJ/1/n |
分钟线 |
| 科创板列表 | /tech/list/all |
全部科创板 |
| 科创板实时 | /tech/real/ssjy/{代码} |
快照 |
| 科创板五档 | /tech/real/mmwp/{代码} |
盘口 |
| 港股通(沪)成分行情 | /ht/nbzj/ggth |
港股通沪标的 |
| 港股通(深)成分行情 | /ht/nbzj/ggts |
港股通深标的 |
| 港股通(沪)历史 | /ht/nbzj/ghls |
历史数据 |
| 港股通(深)历史 | /ht/nbzj/gsls |
历史数据 |
| AH比价 | /ht/nbzj/ah |
A/H 溢价 |
| 港股通十大成交 | /ht/nbzj/hcjd / /ht/nbzj/scjd |
沪/深 |
4. 核心模板函数(自包含可跑)
import time, requests, pandas as pd
BASE = "https://api.zhituapi.com"
TOKEN = "你的token"
_MOCK = False
def _hit_key(path):
return "%s%s?token=%s" % (BASE, path, TOKEN)
def _get(path, default=None, tries=3):
url = _hit_key(path)
for i in range(tries):
try:
if _MOCK:
return default
r = requests.get(url, timeout=8)
r.raise_for_status()
return r.json()
except Exception:
if i == tries - 1:
return default
time.sleep(0.5 * (i + 1))
def fetch_bj_real(code):
return _get("/bj/stock/real/ssjy/%s" % code, default={})
def fetch_tech_real(code):
return _get("/tech/real/ssjy/%s" % code, default={})
def fetch_hk_connect(kind="ggth"):
return _get("/ht/nbzj/%s" % kind, default=[])
def fetch_ah():
return _get("/ht/nbzj/ah", default=[])
def run_check():
global _MOCK
_MOCK = True
bj = {"代码": "920000", "最新价": 12.30, "涨跌幅": 1.5}
tech = {"代码": "688001", "最新价": 88.20, "涨跌幅": -0.8}
hk = [{"代码": "00700", "名称": "腾讯控股", "最新价": 380.0},
{"代码": "00001", "名称": "长和", "最新价": 45.0}]
ah = [{"A股代码": "600519", "H股代码": "03690", "AH溢价": 0.95}]
assert bj["最新价"] == 12.30
assert tech["最新价"] == 88.20
assert len(hk) == 2
assert len(ah) == 1 and "AH溢价" in ah[0]
print("校验通过 | 北交/科创/港股通 三类特色市场取数均正常")
_MOCK = False
if __name__ == "__main__":
run_check()
5. 跑通示例
bj_list = _get("/bj/list/all", default=[])
print("北交所股票数:", len(bj_list or []))
ah = pd.DataFrame(fetch_ah())
print(ah.sort_values("AH溢价").head(10))
提示:
to_frame即前面几篇的 dict/list 兼容转换函数,本文不再重复定义,直接用即可。
6. 坑与注意事项
- 代码后缀:北交所必须带
.BJ,科创板用.SH,港股通用纯港股代码,三类后缀不能混用。 - 盘口差异:北交所有独立五档
/bj/stock/real/mmwp,科创板同理/tech/real/mmwp,但沪深主板的五档在/hs/real/five,别套错前缀。 - 港股通延迟:港股通行情与 A 股有时区/结算差异,做跨境套利要确认数据更新频率。
- 流动性:北交所成交稀疏,逐笔/盘口样本少,回测小市值策略要加权或剔除低流动性标的。
7. 小结与下一篇预告
三类特色市场取数补齐,多市场数据底座基本成型。下一篇讲基金行情与净值——ETF/LOF/开放式基金的行情、K线、历史净值怎么取,是基金策略的数据源。
下一篇预告:《【Python量化实战全攻略 #07】基金行情与净值接口手册:ETF、LOF、开放式基金(附代码)》
8. 免责声明
本文接口路径来自官方文档,示例数据为演示用途,不构成投资建议。
关于数据来源:本文接口来自智兔数服(www.zhituapi.com)官方文档,覆盖沪深A股、指数、基金、可转债等 200+ 已验证接口路径,注册可领免费 token 做研究测试。
更多实战手册见技术博客:zhituapi.com/blog.html。
本系列《Python量化实战全攻略》共 32 篇,下一篇讲基金行情与净值接口。
想亲自试一下?免费获取证书