资讯动态

【Python量化实战宝典 #01】实时行情接口全拆解:盘中快照·五档盘口·逐笔一次跑通(Python 可跑)

发布时间:2026/10/14 10:18:46 来源:尧图企业网站定制
【Python量化实战宝典 #01】实时行情接口全拆解盘中快照·五档盘口·逐笔一次跑通Python 可跑系列《Python量化实战宝典》连载项目 · 纯 GET 取数 · 仅依赖 requests适用想做盘中策略 / 盘口监控但实时接口字段嵌套、五档顺序总搞反、全市场快照一拉就限频的读者。本篇给沪深 A 股「实时交易 / 五档盘口 / 逐笔交易 / 全市场快照」9 个端点的分组地图、一次跑通的代码、五档与逐笔的解法、三个真实踩坑点全部只依赖 requests所有示例均为演示数据不构成投资建议。1. 你将得到什么读完这一篇你能拿走四样东西一张分组地图9 个实时端点按「单票实时 / 全市场快照」分成 2 组知道什么数据该敲哪个门一次跑通的代码/hs/real/ssjy拿单票快照/hs/real/five拿五档盘口五档盘口的解法买卖五档是嵌套数组要按档位展开别把买一卖一顺序搞反三个真实踩坑点都是第一次用几乎一定会踩的。代码全部自包含复制进.py直接能跑不依赖 numpy / pandas。2. 本篇取数约定全部接口都是GET 路径参数token 放在查询串里?tokenxxx统一基址https://api.zhituapi.com代码块里的你的token是占位符换成你的 token 即可所有接口路径均取自官方已验证文档跨篇零重复。3. 9 个端点分 2 组先建立地图。实时交易类一共 9 个端点按用途分组端点用途更新频率单票实时/hs/real/ssjy/{code}单票实时交易价 / 量 / 涨跌盘中实时单票实时/hs/real/zbjy/{code}单票当天逐笔交易主买 / 主卖盘中实时单票实时/hs/real/zbjy/{date}/{code}指定日期的逐笔交易回放盘后单票实时/hs/real/time/{code}券商数据源实时交易字段更细盘中实时单票实时/hs/real/five/{code}买卖五档盘口盘中实时全市场/hs/public/realall全市场实时快照公开源盘中实时全市场/hs/public/ssjymore批量指定代码取快照公开源盘中实时全市场/hs/custom/realall全市场实时快照券商源盘中实时全市场/hs/custom/ssjymore批量指定代码取快照券商源盘中实时code为 6 位证券代码如000001date为YYYYMMDD如20260813。特色市场北交所/bj/...、指数/hz/...有同名接口本篇先聚焦沪深 A 股详见后续手册。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_float(v,defaultNone):try:ifvin(None,,-,null,None):returndefaultreturnfloat(v)except(TypeError,ValueError):returndefault# ---------- 2. 统一请求重试 退避 降级 ----------def_get(path,timeout10,retries2,backoff0.6,defaultNone):返回 JSON失败重试 retries 次仍失败则返回 {_error: 原因}q{token:TOKEN}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_tick(code):return_get(/hs/real/ssjy/%s%code,default{})_MOCK_FIVENonedeffetch_five(code):if_MOCK_FIVEisnotNone:return_MOCK_FIVEreturn_get(/hs/real/five/%s%code,default{})deffetch_trade(code,dateNone):path/hs/real/zbjy/%s%dateifdateelse/hs/real/zbjyreturn_get(path,default[])deffetch_time(code):return_get(/hs/real/time/%s%code,default{})deffetch_all_market():return_get(/hs/public/realall,default[])deffetch_custom():return_get(/hs/custom/realall,default[])# ---------- 4. 五档盘口展开 ----------deffive_levels(code):dfetch_five(code)ifisinstance(d,dict)and_errorind:returnNone,d[_error]bids_hit_key(d,bids,buy,委买,default[])asks_hit_key(d,asks,sell,委卖,default[])return{bids:bids[:5],asks:asks[:5]},None# ---------- 5. 校验 ----------defrun_check():# 1) 字段容错大小写混用也能取到assert_hit_key({Code:000001,NAME:平安银行},code)000001assert_to_float(-)isNoneand_to_float(11.85)11.85# 2) 五档展开买卖各取前 5 档用演示数据替换网络调用global_MOCK_FIVE _MOCK_FIVE{bids:[[1,10.10,1000]for_inrange(5)],asks:[[1,10.20,800]for_inrange(5)]}lv,errfive_levels(000001)_MOCK_FIVENoneasserterrisNoneandlen(lv[bids])5andlen(lv[asks])5# 3) 历史逐笔回放接口可调用assertfetch_trade(000001,20240813)isnotNoneprint(校验通过)if__name____main__:run_check()print(-*62)code000001forname,fnin[(单票快照,lambda:fetch_tick(code)),(五档盘口,lambda:fetch_five(code)),(当天逐笔,lambda:fetch_trade(code)),(券商实时,lambda:fetch_time(code)),(全市场快照,fetch_all_market),(券商全市场,fetch_custom)]: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 即可直接运行传入股票代码five_levels展开买卖五档fetch_trade还能拉指定日期的逐笔回放各字段含义见前文各小节。6. 坑与注意事项坑 1实时接口盘中才有数据盘后返回空或昨收快照。/hs/real/ssjy、/hs/real/five都是盘中实时推送收盘后要么返回空、要么返回昨收静态值。做盘后回测别直接调实时接口要用/hs/real/zbjy/{date}/{code}的盘后逐笔回放或用历史行情接口下一篇讲。坑 2五档盘口是嵌套数组档位顺序别反。/hs/real/five返回bids买盘价格从低到高和asks卖盘价格从高到低每档是[档位, 价格, 数量]。做买卖价差要确认买一在bids[0]、卖一在asks[0]别把数组顺序搞反导致价差算负。坑 3全市场快照量大别每次全量拉。/hs/public/realall一次返回全市场几千只股票的实时快照数据量大、频率高的话容易触发限频。做全市场监控建议用/hs/custom/realall券商源子集或/hs/public/ssjymore指定代码列表按需拉别无脑全量轮询。7. 小结与下篇预告本篇把沪深 A 股 9 个实时端点分成 2 组five_levels展开买卖五档_hit_key处理盘口字段嵌套。下一篇预告《【Python量化实战宝典 #02】历史K线接口全拆解日线·分钟线·技术指标·复权处理Python 可跑》用/hs/history·/hs/pro·/hs/history/{macd|ma|boll|kdj}一组接口把日线 / 分钟线 / 技术指标 / 分红复权一次取全并给出 pandas 多周期聚合与手工前复权代码。8. 免责声明本文仅演示沪深 A 股实时行情数据的取数方法所有代码示例均为演示数据未含任何真实行情数值不构成投资建议亦不承诺收益。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑