【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #02】涨停跌停与特色股池:5类股池接口一次拉全
【别再到处找免费股票数据API了官方204个接口32篇一次讲透 #02】涨停跌停与特色股池5类股池接口一次拉全系列别再到处找免费股票数据API了官方204个接口32篇一次讲透连载项目 · 纯 GET 取数 · 仅依赖 requests适用想做量化选股池 / 打板盯盘但还在盯盘软件手动刷涨跌停、去股吧抄股池的读者数据由官方公开接口提供。本篇给沪深A股「涨停 / 跌停 / 强势 / 新股 / 指标」5 个特色股池端点的分组地图、一行拉全的代码、各股池字段差异的坑全部只依赖 requests所有示例均为演示数据不构成投资建议。1. 你将得到什么读完这一篇你能拿走四样东西一张分组地图5 个特色股池端点按用途分成 3 组知道涨停池、跌停池、新股池该敲哪个门一行拉全的代码/hs/pool/ztgc一次返回当日涨停股池不用爬虫翻页各股池字段差异的解法涨停池有「连板天数」跌停池要区分「一字跌停」还是「跳水跌停」三个真实踩坑点都是第一次用几乎一定会踩的。代码全部自包含复制进.py直接能跑不依赖 numpy / pandas。2. 本篇取数约定全部接口都是GET query 参数token 放在查询串里?tokenxxx统一基址https://api.zhituapi.com代码块里的你的token是占位符换成你的 token 即可所有接口路径均取自官方已验证文档跨篇零重复。3. 5 个端点分 3 组先建立地图。特色股池类一共 5 个端点按用途分组端点用途更新频率上涨股池/hs/pool/ztgc当日涨停股池含连板天数、封单额盘中实时下跌股池/hs/pool/dtgc当日跌停股池含跌停类型盘中实时事件股池/hs/pool/qsgc新股次新股池每日盘后强势股池/hs/pool/cxgc创新高 / 强势股池每日盘后指标股池/hs/pool/zbgc指标股权重 / 成分股池每日盘后4. 核心模板函数importrequests,time BASEhttps://api.zhituapi.comTOKEN你的token# ---------- 1. 字段容错与类型归一 ----------def_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_to_int(v,default0):try:ifvin(None,,-,null,None):returndefaultreturnint(float(v))except(TypeError,ValueError):returndefault# ---------- 2. 统一请求重试 退避 ----------def_get(path,paramsNone,timeout10,retries2,backoff0.6,defaultNone):返回 JSON失败重试 retries 次仍失败则返回 {_error: 原因}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}# ---------- 3. 股池类封装 ----------deffetch_zt():return_get(/hs/pool/ztgc,default[])deffetch_dt():return_get(/hs/pool/dtgc,default[])deffetch_qs():return_get(/hs/pool/qsgc,default[])deffetch_cx():return_get(/hs/pool/cxgc,default[])deffetch_zb():return_get(/hs/pool/zbgc,default[])# ---------- 4. 涨停连板天数排序 ----------deftop_limit_streaks(n10):涨停股池按连板天数降序取前 nrowsfetch_zt()ifisinstance(rows,dict)and_errorinrows:return[],rows[_error]out[]forrinrowsor[]:code_hit_key(r,code,dm,default)name_hit_key(r,name,mc,default)streak_to_int(_hit_key(r,lbs,lbts,连板天数,default1))out.append((streak,code,name))out.sort(keylambdax:x[0],reverseTrue)returnout[:n],None# ---------- 5. 校验 ----------defrun_check():# 1) 字段容错assert_hit_key({Code:000001,Name:平安银行},code,dm)000001assert_to_int(-)0and_to_int(3)3# 2) 涨停池连板排序fake[{code:600519.SH,name:贵州茅台,lbs:2},{code:000001.SZ,name:平安银行,lbs:5},{code:300750.SZ,name:宁德时代,lbs:1}]importtypesglobalfetch_zt _origfetch_zt fetch_ztlambda:fake top,errtop_limit_streaks(2)fetch_zt_origasserterrisNoneandtop[0][0]5andtop[1][0]2print(校验通过)if__name____main__:run_check()print(-*62)forname,pathin[(涨停股池,/hs/pool/ztgc),(跌停股池,/hs/pool/dtgc),(新股股池,/hs/pool/qsgc),(强势股池,/hs/pool/cxgc),(指标股池,/hs/pool/zbgc)]:data_get(path,default[])ifisinstance(data,dict)and_errorindata:print(%-10s %-18s - %s%(name,path,data[_error][:60]))else:print(%-10s %-18s - %d 条%(name,path,len(data)))5. 跑通示例把上面的代码复制到本地填入你的 token 即可直接运行它会请求 5 个特色股池接口、拉取真实数据并输出各股池的条数top_limit_streaks还能按连板天数给涨停股排序各字段含义见前文各小节。6. 坑与注意事项坑 1涨停池和跌停池的字段命名不对称。/hs/pool/ztgc返回「连板天数 / 封单额 / 首次涨停时间」而/hs/pool/dtgc返回「跌停类型 / 成交额」两者字段结构不同别用一套解析函数通吃。_hit_key的容错就是为这种大小写 / 中英文混用准备的。坑 2股池是盘中实时数据盘后可能清空或延迟。/hs/pool/ztgc、/hs/pool/dtgc是盘中实时更新的收盘后接口可能返回空数组或最后快照。做历史回测别直接拿实时股池当历史涨跌停清单要用专门的历史停板接口见后续分时与停板篇。坑 3新股池和强势股池的更新节奏不一致。/hs/pool/qsgc新股是事件驱动只有新股上市那几天有数据/hs/pool/cxgc强势 / 创新高是每日盘后更新。写定时任务时别把它们当成同样频率新股池空了别报错退出。7. 小结与下篇预告本篇把沪深A股 5 个特色股池端点分成 3 组给出一行拉全的代码top_limit_streaks按连板天数给涨停股排序_hit_key处理股池字段不对称。下一篇《【别再到处找免费股票数据API了官方204个接口32篇一次讲透 #03】公司概况股东靠手抄17项上市公司详情一行查清》用/hs/gs一组接口把公司简介 / 上市信息 / 历届高管 / 经营范围等上市公司详情一键取全。8. 免责声明本文仅演示沪深A股特色股池数据的取数方法所有代码示例均为演示数据未含任何真实行情数值不构成投资建议亦不承诺收益。