ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

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

【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #07】历史分时数据难找?分时+停板快照一行取 【别再到处找免费股票数据API了官方204个接口32篇一次讲透 #07】历史分时数据难找分时停板快照一行取系列别再到处找免费股票数据API了官方204个接口32篇一次讲透连载项目 · 纯 GET 取数 · 仅依赖 requests适用想做分时策略 / 停板回测但历史分时只能从同花顺客户端导、还收费的读者数据由官方公开接口提供。本篇给沪深A股「最新分时 / 历史分时 / 停板价格历史 / 集合竞价 / 盘后指标」8 个端点的分组地图、一行取全的代码、分时时间戳与复权的坑全部只依赖 requests所有示例均为演示数据不构成投资建议。1. 你将得到什么读完这一篇你能拿走四样东西一张分组地图8 个分时 / 停板端点按「分时序列 / 停板价 / 集合竞价 / 指标」分成 4 组一行取全的代码/hs/latest拿最新分时/hs/history拿历史分时停板价格的取法/hs/stopprice/history给每日涨跌停价做打板回测要用它三个真实踩坑点都是第一次用几乎一定会踩的。代码全部自包含复制进.py直接能跑不依赖 numpy / pandas。2. 本篇取数约定全部接口都是GET query 参数token 放在查询串里?tokenxxx统一基址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 BASEhttps://api.zhituapi.comTOKEN你的tokendef_hit_key(d,*cands,defaultNone):ifnotisinstance(d,dict):returndefaultforcincands:ifcindandd[c]notin(None,,-,null):returnd[c]low{str(k).lower():vfork,vind.items()}forcincands:vlow.get(str(c).lower())ifvnotin(None,,-,null):returnvreturndefaultdef_get(path,paramsNone,timeout10,retries2,backoff0.6,defaultNone):q{token:TOKEN}ifparams:q.update(params)lastforiinrange(retries1):try:rrequests.get(BASEpath,paramsq,timeouttimeout)ifr.status_code200:try:returnr.json()exceptValueError:returndefault lastHTTP %s %s%(r.status_code,(r.textor).strip()[:80])exceptExceptionase:last%s: %s%(type(e).__name__,e)ifiretries:time.sleep(backoff*(i1))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):rowsfetch_intraday_hist(code,date)ifisinstance(rows,dict)and_errorinrows:return0,rows[_error]returnlen(rowsor[]),None# ---------- 校验 ----------defrun_check():fake[{t:09:31,p:10.1},{t:09:32,p:10.2}]_origfetch_intraday_hist fetch_intraday_histlambdac,d:fake n,errintraday_count(000001.SZ,20240910)fetch_intraday_hist_origasserterrisNoneandn2# 复权历史也需要 dateassertfetch_intraday_qfq(000001.SZ,20240910)isnotNoneprint(校验通过)if__name____main__:run_check()print(-*62)code,date000001.SZ,20240910forname,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))]:datafn()ifisinstance(data,dict)and_errorindata: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必须传date20240910非交易日返回空。做全历史分时回测要按交易日历逐日请求别用自然日循环否则大量空请求还浪费额度。坑 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股分时与停板数据的取数方法所有代码示例均为演示数据未含任何真实行情数值不构成投资建议亦不承诺收益。
返回列表