news 2026/10/8 21:57:39

A股量化数据工程:从 REST 接口到策略信号(第 12 篇):北交所列表与实时行情接入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
A股量化数据工程:从 REST 接口到策略信号(第 12 篇):北交所列表与实时行情接入

A股量化数据工程:从 REST 接口到策略信号(第 12 篇):北交所列表与实时行情接入

前言

主板、创业板、科创板之外,北交所(京市)是竞品覆盖较少的差异化战场。接口bj/list/all给京市股票列表,bj/stock/real/time给实时行情,字段结构与主板一致但代码后缀不同。本篇把北交所行情接进来,开辟一个独立数据维度。

一、接口原始字段梳理

1)京市股票列表

接口地址:https://api.biyingapi.com/bj/list/all/{LICENCE}

字段说明
dm股票代码(北交所后缀,如8xxxxx.BJ)
mc股票名称
jys交易所(北交所)

2)北交所股票实时行情

接口地址:https://api.biyingapi.com/bj/stock/real/time/{LICENCE}

字段说明
p最新价
o今开
h最高
l最低
yc昨收
cje成交额
v成交量
pv原始成交总量
ud涨跌额
pc涨跌幅
zf振幅
t行情时间
pe市盈率
tr换手率
pb_ratio市净率
tv成交量(原始)

二、自研衍生统计指标

  1. 京市强弱分档:按pc把北交所股票分强/平/弱,与主板上证指数(第 1 篇)做跨市场对照。
  2. 低流动性预警:北交所个股换手tr普遍偏低,低于某阈值的标记「流动性薄」。
  3. 市值快照:由p与股本可估算,本篇先用p排序摸清价格分布。

分档与预警基于原始pc/tr字段自研。

三、数据表设计

CREATETABLEIFNOTEXISTSbj_list(dmTEXTPRIMARYKEY,mcTEXT,jysTEXT);CREATETABLEIFNOTEXISTSbj_realtime(dmTEXT,tTEXT,pREAL,oREAL,hREAL,lREAL,ycREAL,cjeREAL,vREAL,pvREAL,udREAL,pcREAL,zfREAL,peREAL,trREAL,pb_ratioREAL,tvREAL,PRIMARYKEY(dm,t));

四、完整代码

importrequestsimportsqlite3importtime LICENCE="YOUR_LICENCE"BASE="https://api.biyingapi.com"DB_PATH="quant.db"defbiying_api_get_retry(url,timeout=15,max_retry=3):foriinrange(max_retry):try:r=requests.get(url,timeout=timeout)r.raise_for_status()returnr.json()exceptExceptionase:ifi==max_retry-1:raisetime.sleep(1+i)deffetch_bj_list():d=biying_api_get_retry(f"{BASE}/bj/list/all/{LICENCE}")returnd.get("data",[])ifisinstance(d,dict)else[]deffetch_bj_realtime():d=biying_api_get_retry(f"{BASE}/bj/stock/real/time/{LICENCE}")returnd.get("data",[])ifisinstance(d,dict)else[]defstrength_tag(pc):ifpcisNone:return"平"ifpc>1.0:return"强"ifpc<-1.0:return"弱"return"平"if__name__=="__main__":lst=fetch_bj_list()con=sqlite3.connect(DB_PATH)con.executemany("INSERT OR REPLACE INTO bj_list(dm,mc,jys) VALUES(?,?,?)",[[r.get("dm"),r.get("mc"),r.get("jys")]forrinlst])con.commit()rt=fetch_bj_realtime()cols=["dm","t","p","o","h","l","yc","cje","v","pv","ud","pc","zf","pe","tr","pb_ratio","tv"]forrinrt:vals=[r.get(c)forcincols]ph=",".join("?"*len(cols))con.execute(f"INSERT OR REPLACE INTO bj_realtime({','.join(cols)}) VALUES({ph})",vals)con.commit();con.close()strong=[rforrinrtifstrength_tag(r.get("pc"))=="强"]thin=[rforrinrtif(r.get("tr")or0)<0.5]print(f"北交所列表{len(lst)}只,实时{len(rt)}只")print(f"强势{len(strong)}只,流动性偏薄(<0.5%换手){len(thin)}只")

五、关键业务说明

  • 代码后缀区分市场:北交所代码后缀为.BJ,与主板.SH/.SZ不同,落库与查询要带全。
  • 流动性是北交所特征:京市整体换手低于主板,量化策略需单独设阈值,不能直接套主板参数。
  • 实时接口批量返回:bj/stock/real/time一次返回全市场,无需逐只循环,注意免费版条数上限。

六、拓展练习

  1. 把北交所pc分布与第 1 篇上证指数做跨市场强弱对比,看资金是否切换。
  2. 用tr给北交所股票做流动性分层,回测各层换手策略有效性(仅统计)。
  3. 把bj_list与主板hsstock列表合并,做全市场统一行情快照表。

下篇预告

A股量化数据工程:从 REST 接口到策略信号(第 13 篇):北交所五档盘口实战

下一篇用bj/stock/real/five拉取北交所五档盘口(买卖委差),讲解盘口失衡指标的算法与落地。

免责申明:本篇全部代码、接口调用仅作为量化编程学习演示,仅为数据演示,不构成投资建议。市场有风险,投资需谨慎。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 21:54:37

MCP 协议实战:用 TaoToken 统一 Key 打通 AI Agent 的 JSON-RPC 调用链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华