← 返回博客列表

【Python量化实战全攻略 #06】特色市场接口手册:北交所·科创板·港股通怎么取(附代码)

2026年10月13日 10:21 · 智兔数服 · Python量化实战全攻略

摘要:【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. 坑与注意事项

  1. 代码后缀:北交所必须带 .BJ,科创板用 .SH,港股通用纯港股代码,三类后缀不能混用。
  2. 盘口差异:北交所有独立五档 /bj/stock/real/mmwp,科创板同理 /tech/real/mmwp,但沪深主板的五档在 /hs/real/five,别套错前缀。
  3. 港股通延迟:港股通行情与 A 股有时区/结算差异,做跨境套利要确认数据更新频率。
  4. 流动性:北交所成交稀疏,逐笔/盘口样本少,回测小市值策略要加权或剔除低流动性标的。

7. 小结与下一篇预告

三类特色市场取数补齐,多市场数据底座基本成型。下一篇讲基金行情与净值——ETF/LOF/开放式基金的行情、K线、历史净值怎么取,是基金策略的数据源。

下一篇预告:《【Python量化实战全攻略 #07】基金行情与净值接口手册:ETF、LOF、开放式基金(附代码)》

8. 免责声明

本文接口路径来自官方文档,示例数据为演示用途,不构成投资建议。


关于数据来源:本文接口来自智兔数服(www.zhituapi.com)官方文档,覆盖沪深A股、指数、基金、可转债等 200+ 已验证接口路径,注册可领免费 token 做研究测试。
更多实战手册见技术博客:zhituapi.com/blog.html。
本系列《Python量化实战全攻略》共 32 篇,下一篇讲基金行情与净值接口。

想亲自试一下?免费获取证书