news 2026/9/6 12:48:16

【零依赖量化数据实战 #34】历史K线收尾:北交所K线与沪深VIP历史K线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【零依赖量化数据实战 #34】历史K线收尾:北交所K线与沪深VIP历史K线

【零依赖量化数据实战 #34】历史K线收尾:北交所K线与沪深VIP历史K线

系列:《零依赖量化数据实战》|零依赖 · 纯 GET · 不 import 任何 SDK
适用:想把北交所单只历史K线沪深VIP历史K线(OHLCV)用纯requests拉到本地的量化爱好者;不依赖任何行情终端。

1. 你将得到什么

  • 2 个官方接口的最小可用封装,按市场分成两组:
    • 北交所历史K线(1):/bj/history/{代码.市场}/{级别}/{除权方式}—— 北交所单只 OHLCV 日/周/月线。
    • 沪深VIP历史K线(1):/hs/hsstock/vip/{代码.市场}/{级别}/{除权方式}—— 沪深单只 OHLCV(需 VIP 权限)。
  • 一个对字段名不敏感_hit_key读取函数:K线字段中英文混排(日期/date、开盘/open、收盘/close、最高/high、最低/low、成交量/volume),一行候选键命中。

2. 端点语义表

端点语义关键参数
GET /bj/history/{代码.市场}/{级别}/{除权方式}北交所单只历史K线(OHLCV)代码.市场920000.BJ级别d(日)/w(周)/m(月);除权方式n(不复权)/qfq/hfq
GET /hs/hsstock/vip/{代码.市场}/{级别}/{除权方式}沪深单只 VIP 历史K线(OHLCV)同上,代码如000001.SZ;需 VIP 权限

3. 字段名候选键命中

K线行是典型的中英文混排结构,下面这些字段名都可能在返回里出现,统一用候选键命中:

含义候选键(按顺序命中第一个存在的)
日期日期/date/time
开盘价开盘/open
收盘价收盘/close
最高价最高/high
最低价最低/low
成交量成交量/volume/vol

4. 核心模板函数

importrequests TOKEN="你的token"# 外渠版占位;技术博客版用「你的 token」BASE="http://api.zhituapi.com"def_get(path,params=None,token=TOKEN):url=f"{BASE}{path}"q=dict(paramsor{})q["token"]=tokentry:r=requests.get(url,params=q,timeout=10)exceptExceptionase:returnNone,f"ERR{e}"ifr.status_code!=200:returnNone,f"{r.status_code}{r.text.strip()[:140]}"try:returnr.json(),NoneexceptException:returnNone,f"{r.status_code}{r.text.strip()[:140]}"def_hit_key(row,keys):"""字段名中英文混排:按顺序命中第一个存在的键。"""forkinkeys:ifkinrow:returnrow[k]returnNonedefbj_kline(code="920000.BJ",period="d",fq="n"):"""北交所历史K线。"""return_get(f"/bj/history/{code}/{period}/{fq}")defhs_vip_kline(code="000001.SZ",period="d",fq="n"):"""沪深 VIP 历史K线(需 VIP 权限)。"""return_get(f"/hs/hsstock/vip/{code}/{period}/{fq}")if__name__=="__main__":forname,fnin[("bj_kline",bj_kline),("hs_vip_kline",hs_vip_kline)]:data,err=fn()print(f"[{name}] data={data}err={err}")

跑通示例

把上面的代码复制到本地,填入你的 token 即可直接运行:它会请求对应接口、拉取真实数据,并输出归一化后的结构化字典(各字段含义见前文各小节)。

6. 坑与注意事项

  1. 102 不代表路径对404 102是「证书不存在」(鉴权先于路由),路径合法与否要靠客户端白名单自查。
  2. token 必须走查询参数?token=你的token,不要塞进 header——
  3. 代码后缀别漏:北交所是.BJ、深市.SZ、沪市.SH,路径里的点号原样保留(requests 会自行百分号编码)。
  4. 除权方式三选一n(不复权)/qfq(前复权)/hfq(后复权),写错会路由不到。
  5. VIP 路径要权限/hs/hsstock/vip/需要 VIP 证书,普通 token 即便路径正确也可能返回无权限,属于预期内。

7. 小结与下篇预告

本篇把「历史K线」的两种收尾端点——北交所K线与沪深VIP历史K线——拧成了 2 个零依赖封装,重点解决token 查询参数代码后缀除权方式三选一三个坑,配_hit_key候选键即可一行读出行情。

本篇(#34)为 #29–#34 阶段收尾:本篇用零依赖接口补齐了北交所历史K线与沪深VIP历史K线两类 OHLCV 端点,至此《零依赖量化数据实战》覆盖官方接口清单的全部 191 个端点。

8. 免责声明

本文仅演示公开数据接口的用法,所有代码示例均为演示数据,未含任何真实数据;文中示例仅为演示用途,不构成投资建议,亦不承诺收益。

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

HarmonyOS Dev Assistant赋能元服务开发全流程实操指南

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

作者头像 李华
网站建设 2026/9/6 12:44:30

【Linux入门到进阶】保姆级思维导图总结(建议收藏)

作为专业开发者,Linux是绕不开的基石。最近整理了系统性的Linux学习笔记,从基础架构到Shell命令,再到目前火热的AI大模型本地部署(Ollama),内容比较全面。以下为精华总结,希望能帮助大家快速梳理…

作者头像 李华
网站建设 2026/9/6 12:44:26

长沙劳务公司注册执照代办费用多少?

长沙劳务公司注册执照代办费用情况核心概述在长沙注册劳务公司执照,对于很多企业主来说,选择代办可节省时间和精力,但代办费用是大家关注的重点。湖南巨勤财务管理咨询有限公司作为长沙本地专业的财税服务公司,在工商注册代办方面…

作者头像 李华
网站建设 2026/9/6 12:39:24

2026 Linux运维学习路线:从零基础到云计算运维进阶指南

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

作者头像 李华
网站建设 2026/9/6 12:36:19

从46.22秒说起:信息素养与数据验证的实战拆解

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

作者头像 李华
网站建设 2026/9/6 12:35:23

No Jibber Jabber:用Mr. T风格提示词让AI告别废话

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

作者头像 李华