☰
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #07】历史分时数据难找?分时+停板快照一行取
2026/10/2 20:09:37 网站建设 项目流程

【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #07】历史分时数据难找?分时+停板快照一行取

系列:别再到处找免费股票数据API了:官方204个接口,32篇一次讲透|连载项目 · 纯 GET 取数 · 仅依赖 requests
适用:想做分时策略 / 停板回测,但历史分时只能从同花顺客户端导、还收费的读者;数据由官方公开接口提供。本篇给沪深A股「最新分时 / 历史分时 / 停板价格历史 / 集合竞价 / 盘后指标」8 个端点的分组地图、一行取全的代码、分时时间戳与复权的坑,全部只依赖 requests,所有示例均为演示数据,不构成投资建议。

1. 你将得到什么

读完这一篇,你能拿走四样东西:

  1. 一张分组地图:8 个分时 / 停板端点按「分时序列 / 停板价 / 集合竞价 / 指标」分成 4 组;
  2. 一行取全的代码:/hs/latest拿最新分时,/hs/history拿历史分时;
  3. 停板价格的取法:/hs/stopprice/history给每日涨跌停价,做打板回测要用它;
  4. 三个真实踩坑点,都是第一次用几乎一定会踩的。

代码全部自包含,复制进.py直接能跑,不依赖 numpy / pandas。

2. 本篇取数约定

  • 全部接口都是GET + query 参数,token 放在查询串里(?token=xxx);
  • 统一基址https://api.zhituapi.com;
  • 代码块里的你的token是占位符,换成你的 token 即可;
  • 所有接口路径均取自官方已验证文档,跨篇零重复。

3. 8 个端点分 4 组

先建立地图。分时 / 停板类一共 8 个端点,按用途分:

组端点用途更新频率
分时序列/hs/latest最新分时(当日 1 分钟线)盘中
分时序列/hs/history历史分时(指定日期)盘后
分时序列/hs/pro/latest前复权最新分时盘中
分时序列/hs/pro/history前复权历史分时盘后
停板价/hs/stopprice/history每日涨跌停价格历史每日盘后
集合竞价/hs/lup/limit涨跌停限制 / 价格笼子每日盘后
集合竞价/hs/lup/auction集合竞价成交盘中
指标/hs/indicators盘后技术指标(量比 / 换手等)每日盘后

4. 核心模板函数

importrequests,time BASE="https://api.zhituapi.com"TOKEN="你的token"def_hit_key(d,*cands,default=None):ifnotisinstance(d,dict):returndefaultforcincands:ifcindandd[c]notin(None,"","-","null"):returnd[c]low={str(k).lower():vfork,vind.items()}forcincands:v=low.get(str(c).lower())ifvnotin(None,"","-","null"):returnvreturndefaultdef_get(path,params=None,timeout=10,retries=2,backoff=0.6,default=None):q={"token":TOKEN}ifparams:q.update(params)last=""foriinrange(retries+1):try:r=requests.get(BASE+path,params=q,timeout=timeout)ifr.status_code==200:try:returnr.json()exceptValueError:returndefault last="HTTP %s %s"%(r.status_code,(r.textor"").strip()[:80])exceptExceptionase:last="%s: %s"%(type(e).__name__,e)ifi<retries:time.sleep(backoff*(i+1))return{"_error":last}# ---------- 封装 ----------deffetch_intraday_today(code):return_get("/hs/latest",{"code":code},default=[])deffetch_intraday_hist(code,date):return_get("/hs/history",{"code":code,"date":date},default=[])deffetch_intraday_qfq(code,date):return_get("/hs/pro/history",{"code":code,"date":date},default=[])deffetch_stop_price(code,date):return_get("/hs/stopprice/history",{"code":code,"date":date},default=[])deffetch_auction(code):return_get("/hs/lup/auction",{"code":code},default=[])deffetch_indicators(code):return_get("/hs/indicators",{"code":code},default={})# ---------- 分时条数 ----------defintraday_count(code,date):rows=fetch_intraday_hist(code,date)ifisinstance(rows,dict)and"_error"inrows:return0,rows["_error"]returnlen(rowsor[]),None# ---------- 校验 ----------defrun_check():fake=[{"t":"09:31","p":10.1},{"t":"09:32","p":10.2}]_orig=fetch_intraday_hist fetch_intraday_hist=lambdac,d:fake n,err=intraday_count("000001.SZ","20240910")fetch_intraday_hist=_origasserterrisNoneandn==2# 复权历史也需要 dateassertfetch_intraday_qfq("000001.SZ","20240910")isnotNoneprint("校验通过")if__name__=="__main__":run_check()print("-"*62)code,date="000001.SZ","20240910"forname,fnin[("最新分时",lambda:fetch_intraday_today(code)),("历史分时",lambda:fetch_intraday_hist(code,date)),("前复权分时",lambda:fetch_intraday_qfq(code,date)),("停板价",lambda:fetch_stop_price(code,date)),("集合竞价",lambda:fetch_auction(code)),("盘后指标",lambda:fetch_indicators(code))]:data=fn()ifisinstance(data,dict)and"_error"indata:print("%-10s -> %s"%(name,data["_error"][:60]))else:print("%-10s -> %d 条"%(name,len(data)ifisinstance(data,list)else1))

5. 跑通示例

把上面的代码复制到本地,填入你的 token 即可直接运行:传入代码与日期,intraday_count统计历史分时节点数,fetch_intraday_qfq还能拉前复权分时(各字段含义见前文各小节)。

6. 坑与注意事项

坑 1:历史分时要传date,且只返回交易日的分时。
/hs/history必须传date=20240910,非交易日返回空。做全历史分时回测要按交易日历逐日请求,别用自然日循环,否则大量空请求还浪费额度。

坑 2:普通分时和前复权分时是两套接口,除权日跳变不同。
/hs/latest//hs/history是未复权(除权日价格会跳空),/hs/pro/latest//hs/pro/history是前复权(平滑跳空)。做均线 / 形态识别要用复权版,做精确成交价复盘要用未复权版,别混用。

坑 3:停板价是回测打板的基准,不是实时价。
/hs/stopprice/history给的是当日涨跌停价格(由昨收算),不是实际成交价。做涨停板回测要用它判断某价是否触板,再结合实时 / 逐笔接口看是否封住,别把停板价当成交价。

7. 小结与下篇预告

本篇把沪深A股 8 个分时 / 停板端点分成 4 组,intraday_count统计分时节点数,_hit_key处理分时字段嵌套。

下一篇:《【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #08】个股资金流向靠猜?主力净流入排名一次拉》:用/hs/history/transaction一组接口,把个股资金流向 / 主力净流入 / 大单净流入一次拉全。

8. 免责声明

本文仅演示沪深A股分时与停板数据的取数方法,所有代码示例均为演示数据,未含任何真实行情数值,不构成投资建议,亦不承诺收益。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询