当前位置: 首页 > news >正文

【Python实时盯盘与预警 #06】一天 500 次额度不够用?批量接口一次拉 20 只,省 95% 额度


你要是从本系列第一篇跟着写到现在,手里应该攒了几个盘中监控脚本——自选股轮询、涨跌幅告警、涨停池、炸板预警、盘口分析。然后问题来了:

一天 500 次免费额度,到底够不够?

假设 20 只自选,盘中每 5 分钟刷一次(4 小时 = 48 次):

  • 逐只轮询:20 × 48 =960 次→ ❌ 超限,下午就断流
  • 批量接口:1 × 48 =48 次→ ✅ 仅用 9.6%

同一批数据、同一个结果,额度消耗差了 20 倍。这篇就是告诉你这个批量接口怎么用,以及它跟逐只调到底差在哪。


本文你将得到什么

  • 一个对比脚本:逐只轮询(stock_ssjy)vs 批量拉取(stock_ssjy_more
  • 20 只真实自选股实时数据对比:耗时、额度、字段差异
  • 免费版日额度模型:从"不够用"到"绰绰有余"的具体算账
  • 批量接口使用注意事项(上限 20 只/次、字段差异、返回格式)

两个接口,同一份数据

mairui SDK 提供了两个实时行情接口:

接口方法入参额度消耗
单股实时stock_ssjy(code)单个股票代码1 次/只
批量实时stock_ssjy_more(codes)逗号分隔 ≤20 只1 次(不管几只!)

核心规则:批量接口不管你传 1 只还是 20 只,都只算 1 次 API 调用。

这个规则来自/hsrl/ssjy_more接口(后台路由MerryApi_new/Router/hsrl.py),免费版也能用。上篇提到的stock_real_all全市场快照虽然更省事(一次拉 5000+ 只也只 1 次),但那是付费版权益(需要包年或白金证书),免费版用不了。所以对于免费版用户来说,stock_ssjy_more就是省额度的最佳选择。


代码:逐只轮询 vs 批量一次

frommairuiimportClientimportosimporttime lic=os.environ["MAIRUI_LICENCE"]mc=Client(lic)# 20 只自选股WATCHLIST=["000001","000002","000858","002594","300750","600519","601318","600036","000333","002415","600900","601012","000651","002142","600585","601398","000725","002230","600276","300059",]# ── 方案 A: 逐只调 ──print("【逐只轮询】")t0=time.time()forcodeinWATCHLIST:r=mc.stock_ssjy(code)t=time.time()-t0print(f"耗时={t:.2f}s | 额度=20 次")# ── 方案 B: 批量一次 ──print("\n【批量拉取】")t0=time.time()results=mc.stock_ssjy_more(",".join(WATCHLIST))t=time.time()-t0print(f"耗时={t:.2f}s | 额度=1 次 | 返回{len(results)}只")

实测对比(2026-08-04 09:59,真实运行)

====================================================================== 批量实时接口 vs 单股轮询:额度消耗对比 自选股: 20 只 ====================================================================== 【方案 A】单股轮询 (逐一调 stock_ssjy) 耗时: 0.53s | 成功=20只 | 失败=0只 API 调用次数: 20 次(每只 1 次) 免费版日额度消耗: 20/500 次 (4.0%) 【方案 B】批量接口 (stock_ssjy_more, 一次 ≤20 只) 耗时: 0.02s | 返回: 20只 API 调用次数: 1 次(一次拉 20 只,只计 1 次额度!) 免费版日额度消耗: 1/500 次 (0.2%) 🎯 额度节省: 20 次 → 1 次 = 省 19/20 = 95%

两条关键数据:

  1. 额度从 20 次 → 1 次,省 95%
  2. 耗时从 0.53s → 0.02s,快 26 倍(批量接口只做一次网络往返)

日额度模型算账

场景 1:自选股盘中刷新

条件:20 只自选,每 5 分钟刷新一次,盘中 4 小时 = 48 次/天 逐只轮询:20 × 48 = 960 次 → ❌ 超限(500/日),下午断流 批量接口: 1 × 48 = 48 次 → ✅ 仅用 9.6%,绰绰有余

场景 2:全市场快扫(高频)

条件:5000 只全市场,每 30 秒扫一次 逐只轮询:❌ 根本不可能(5000 > 500) 批量接口:5000/20 = 250 批 × 1 次 = 250 次 → ✅ 够用

场景 3:盘中盯盘 + 涨停池 + 盘口分析合在一起

批量刷新 20 只自选: 1 × 48 = 48 次 涨停池(limit_up_pool):1 × 48 = 48 次 盘口五档(5 只重点): 5 × 48 = 240 次 ──────────────────────────────── 合计:336 次/日 → ✅ 还剩 164 次

不是"不够用",是"之前没用对接口"。


⚠️ 重要:批量接口与单股的字段差异

两个接口返回的字段不完全相同,实测对比如下:

类别字段单股(stock_ssjy)批量(stock_ssjy_more)
核心p(现价)/zf(涨跌幅)/cje(成交额)/o/h/l/yc
批量专有dm(代码)/tr(振幅)/pb_ratio(市净率)/tv(总手)
单股专有sz(总市值)/lb(量比)/lt(流通市值)/hs(换手)
单股专有zdf60(60日涨跌)/sjl(市盈率)/fm(评分)

结论:核心字段(现价、涨跌幅、成交额、开高低)两边都有,盯盘够用。如果要总市值、换手率等扩展字段,需要单独用stock_ssjy补。

批量接口独有的dm字段很实用——返回结果是一个数组,靠dm能直接定位到代码,不用再维护下标映射。


使用注意事项

  1. 上限 20 只/次:传 21 只及以上会报错 422(请求参数无效)。如果需要拉超过 20 只,分批次调:每 20 只一组,for 循环调用
  2. 参数格式:逗号分隔字符串,不是数组。正确:"000001,000002,600519";错误:["000001","000002"]
  3. 缺参数报 422:忘了传 codes 参数或传了空字符串都会返回 422
  4. 免费版可用:这个接口没有 licence 等级限制,免费版证书也能用
  5. 字段取用先判存在:如果你需要换手率hs,批量接口没有这个字段,需要单独调单股接口补充

分批次拉取的完整例子

deffetch_watchlist_batch(mc,watchlist,batch_size=20):"""分批拉取自选股实时行情。返回 {code: data}。"""result={}foriinrange(0,len(watchlist),batch_size):batch=watchlist[i:i+batch_size]codes=",".join(batch)items=mc.stock_ssjy_more(codes)foriteminitems:result[item["dm"]]=itemreturnresult# 用法:即使 50 只自选,也只需要 3 次调用(3 次额度)all_data=fetch_watchlist_batch(mc,WATCHLIST,batch_size=20)

常见坑

  1. 别把"批量接口省额度"当成"可以疯狂轮询"——1 秒调 10 次会被限流,建议至少间隔 3-5 秒
  2. 交易日 09:30 之前调用会返回空数组(盘中才有实时数据)
  3. 批量接口返回顺序 = 你传参的顺序,不按代码排序

小结

批量接口stock_ssjy_more是盯盘场景省额度的核心武器。20 只自选、每 5 分钟刷新、一天 48 次——逐只轮询 960 次超限,批量接口只用 48 次,还快 26 倍。加上前几篇的涨停池、炸板预警、盘口分析,整个盯盘体系在免费版 500 次/日内完全可以落地。

下一篇我们做涨速排行榜——3 分钟内涨幅最猛的 30 只,用实时数据算出来。这个结合批量接口威力更大:先批量拉一轮价格,隔一段时间再拉一轮,算差就出涨速,全在 10 次额度以内搞定。


⚠️免责声明:本文为技术分享,所有计算仅展示 Python 编程方法与 API 使用技巧,不构成任何投资建议。股市有风险,投资需谨慎。

📌 关注「Python实时盯盘与预警」合集(共 16 篇),从自选股报价到全市场监控、从免费版到企业证书方案——一站式盘中盯盘不求人。

http://www.cnnetsun.cn/news/3913208.html

相关文章:

  • AI智能体攻击Hugging Face事件剖析与防御实战指南
  • 深入了解上海市建设工程安全质量监督总站网站背后的监管逻辑与行业未来
  • 如何快速上手whatlanggo:3分钟实现Go语言自然语言识别
  • 淘宝API竞品数据分析实战:从采集到商业决策
  • RAG系统生产级实战:从架构设计到Agent与Graph进阶避坑指南
  • 北师大网页制作与网站建设深度解析:从零基础到专业落地的全过程指南
  • 神经符号架构实践指南:从原理到视觉问答系统原型搭建
  • 运放电路实战:从单电源设计到4-20mA采样与稳定性调优
  • BOtB高级技巧:自定义Payload实现容器命令劫持与数据外渗
  • 从API调用到流程编排:LangChain核心概念与RAG实战指南
  • 选择上海网站建设领导品牌,揭秘企业数字化腾飞背后的核心逻辑与价值重塑之路
  • 告别Windows龟速搜索!EverythingToolbar让你的任务栏秒变文件搜索神器
  • 从零构建自动化图集工作流:告别手动拼图,实现素材管理工程化
  • 如何10分钟掌握sqliteviz:浏览器端SQL数据可视化终极指南
  • wx-charts架构深度解析:微信小程序Canvas图表渲染引擎技术实现揭秘
  • QKeyMapper:重新定义输入设备交互的开源解决方案
  • 探索中国建设会计学会网站:获取最新行业资讯、会员权益与专业培训资源的全方位指南
  • MarkText终极指南:优雅高效的免费Markdown编辑器
  • 如何在Linux系统上快速安装Realtek r8125 DKMS驱动,轻松开启2.5GbE高速网络体验 [特殊字符]
  • 3步掌握星露谷物语农场规划器:打造完美星露谷农场布局
  • LDDC:5分钟掌握免费歌词下载与精准匹配的完整指南
  • 深度解析GeoJSON生态:高效地理数据处理工具与技术栈全指南
  • 深入解析网站建设前台与后台最新技术:从用户体验到数据安全的全面升级指南
  • UE5自定义小部件开发实战:从数据绑定到材质特效的完整指南
  • 终极指南:如何用jsontt实现JSON/YAML文件翻译?3步搞定多语言开发
  • Git:LFS、LazyGit、Gitea、Gogs、GitButler、Foregjo、FastGithub、Tangled、Codeberg、CNB
  • M.2接口硬件设计全解析:从协议、信号完整性到实战避坑指南
  • 蚌埠网站建设文章:中小企业如何打造高转化率的数字名片与品牌护城河
  • 从零开始:OpCore-Simplify如何让黑苹果配置变得像搭积木一样简单
  • 探秘成都高新区规划建设局网站:深度解析政务服务平台的便民之道与城市未来