2026/8/9 10:11:21

【Python实时盯盘与预警 #07】3分钟涨幅最猛的30只:用Python算涨速排行榜

【Python实时盯盘与预警 #07】3分钟涨幅最猛的30只:用Python算涨速排行榜 你有没有这种体验盯着自选股突然看到一只票直线拉升——等你切过去看已经涨了 5% 了。你想知道此刻全市场哪些票涨得最快不是涨跌幅排行那看的是全天而是最近几分钟内的涨速。行情软件里那个涨速榜很多人都看过但它是软件控制的你没法自定义窗口、没法加自己的过滤条件、也没法存下来做回放。这篇教你用 Python 批量实时接口两轮快照算涨速100 只股票只花 10 次额度排出自定义涨速排行榜。本文你将得到什么一个涨速排行榜脚本两轮快照法100 只股票参与排行批量接口分批拉取的工程写法stock_ssjy_more每 20 只 1 次额度涨速计算公式与窗口大小的选择建议API 内置涨速字段zs与自己算的涨速对比各自适用场景什么是涨速跟涨跌幅有什么区别指标计算方式看什么涨跌幅zf(现价 - 昨收) / 昨收 × 100%全天累计涨了多少涨速(T2价格 - T1价格) / T1价格 × 100%最近 N 分钟内涨了多少涨跌幅看的是全天一只票可能早上就涨停了全天涨跌幅 10%但此刻已经不动了。涨速看的是当下——最近 3 分钟、5 分钟内价格变化了多少。涨速榜就是找正在拉升的票而不是已经涨了的票。两轮快照法原理很简单T1 时刻批量拉 100 只股票的现价 → 记录 p1 ↓ 等待 N 秒 T2 时刻再批量拉同一批股票的现价 → 记录 p2 ↓ 涨速 (p2 - p1) / p1 × 100% ↓ 按涨速降序排列 → 取 Top 30额度计算100 只股票每 20 只一批 5 批两轮共 10 次 API 调用。免费版 500 次/日占 2%。如果用单股接口逐只拉100 × 2 200 次。差了 20 倍。这就是系列 #06 讲的批量接口的价值。代码涨速排行榜importsysimportosimporttime# 证书加载只读不打印sys.path.insert(0,os.path.join(os.path.dirname(__file__),..,..,_common))frommairui_helperimportload_licencefrommairuiimportClient SAMPLE_SIZE100# 参与排行的股票数量INTERVAL60# 两轮快照间隔秒实盘建议 60-180TOP_N30BATCH_SIZE20# 接口上限每批最多 20 只deffetch_batch(mc,codes):分批拉取实时行情返回 {code: data}。result{}foriinrange(0,len(codes),BATCH_SIZE):batchcodes[i:iBATCH_SIZE]itemsmc.stock_ssjy_more(,.join(batch))foriteminitems:result[item[dm]]itemreturnresultdefmain():licload_licence()mcClient(lic)# 1. 获取股票列表取前 100 只all_stocksmc.stock_list()stocksall_stocks[:SAMPLE_SIZE]code_to_name{}codes[]forsinstocks:raw_codes[dm].split(.)[0]# 000001.SZ → 000001codes.append(raw_code)code_to_name[raw_code]s[mc]# 2. 第一轮快照snap1fetch_batch(mc,codes)print(f[第一轮] 拉取{len(snap1)}只)# 3. 等待print(f等待{INTERVAL}秒...)time.sleep(INTERVAL)# 4. 第二轮快照snap2fetch_batch(mc,codes)print(f[第二轮] 拉取{len(snap2)}只)# 5. 计算涨速并排序results[]forcodeincodes:d1snap1.get(code)d2snap2.get(code)ifnotd1ornotd2:continuep1float(d1.get(p,0))p2float(d2.get(p,0))ifp10:continuespeed(p2-p1)/p1*100results.append({code:code,name:code_to_name.get(code,),p1:p1,p2:p2,speed:speed,zf:float(d2.get(zf,0)),cje:float(d2.get(cje,0)),})results.sort(keylambdax:x[speed],reverseTrue)# 6. 输出 Top 30print(f\n涨速排行榜 Top{TOP_N}{INTERVAL}秒窗口)print(f{排名:4}{代码:8}{名称:8}{第一轮:8}{第二轮:8}f{涨速%:8}{涨跌幅%:8}{成交额(万):12})fori,rinenumerate(results[:TOP_N]):cje_wanr[cje]/10000print(f{i1:4}{r[code]:8}{r[name]:8}{r[p1]:8.2f}f{r[p2]:8.2f}{r[speed]:8.3f}{r[zf]:8.2f}f{cje_wan:12.0f})api_calls(len(codes)//BATCH_SIZE1)*2print(f\nAPI 调用{api_calls}次 | 日额度消耗{api_calls}/500 f({api_calls/500*100:.1f}%))if__name____main__:main()实测结果2026-08-05 09:55真实运行 涨速排行榜 Top 3030秒窗口 排名 代码 名称 第一轮 第二轮 涨速% 涨跌幅% 成交额(万) ---------------------------------------------------------------------- 1 000032 深桑达 14.39 14.48 0.625 3.45 23227 2 000488 ST晨鸣 1.94 1.95 0.515 1.52 441 3 000016 *ST康佳A 2.60 2.61 0.385 1.55 1112 4 000510 新金路 15.88 15.92 0.252 8.81 60374 5 000036 华联控股 4.08 4.09 0.245 1.46 2603 6 000026 飞亚达 16.51 16.55 0.242 3.24 5110 7 000021 深科技 38.08 38.17 0.236 5.75 171819 8 000426 兴业银锡 34.53 34.61 0.232 5.53 94069 9 000034 神州数码 25.93 25.99 0.231 6.67 48198 10 000029 深深房 21.86 21.91 0.229 2.23 2336 ... 统计样本 100 只 | API 调用 10 次 | 免费版日额度消耗 10/500 (2.0%) 涨速 027 只 | 涨速 043 只 | 涨速 030 只几个关键点Top1 深桑达30 秒内从 14.39 涨到 14.48涨速 0.625%。同一时刻全天涨跌幅才 3.45%——说明这只票此刻正在拉升Top4 新金路涨速 0.252% 但全天涨跌幅 8.81%——已经涨了很多此刻还在加速43 只涨速为 030 秒窗口内价格没变正常现象非交易活跃时段或停牌10 次 API 调用搞定 100 只批量接口的威力API 内置涨速 vs 自己算的涨速stock_ssjy单股实时接口里有一个zs字段就是 API 内置的涨速。我们把它和自己算的做个对比代码 名称 计算涨速% API涨速(zs) 涨跌幅% 000032 深桑达 0.625 -0.07 3.45 000488 ST晨鸣 0.515 0.52 1.52 000510 新金路 0.252 0.44 8.81 000026 飞亚达 0.242 0.30 3.24 000021 深科技 0.236 0.32 5.75两者数值不一样因为计算口径不同API 的zs服务端用一个固定窗口通常 5 分钟算的涨速我们的自定义窗口30 秒更短更灵敏各自适用场景方式优势劣势适用APIzs字段不用自己算拿过来就是窗口固定不可调需逐只调stock_ssjy1 次/只少量股票≤20 只快速看两轮快照法窗口自定义、批量省额度需等一个窗口周期大量股票排行榜100 只股票做排行榜两轮快照法只用 10 次额度用 APIzs字段要 100 次。这就是批量接口 自己算的价值。窗口大小怎么选窗口特点适用场景30 秒极灵敏抓瞬间异动高频监控、秒级策略60 秒平衡灵敏与噪音日常盯盘推荐180 秒过滤毛刺看趋势中低频、趋势确认窗口太短30 秒价格没怎么动大量涨速为 0排行没意义。窗口太长5 分钟变成了5 分钟涨跌幅不是涨速了。常见坑09:30 前调用返回空数组盘中才有实时数据盘前跑会得到空结果停牌股票价格为 0代码里必须判p1 0跳过否则除零报错批量接口上限 20 只/次超过 20 只要分批用range(0, len, 20)循环两轮快照的代码顺序要一致用同一份codes列表不能中间改顺序stock_ssjy_more返回的dm不带后缀是000001不是000001.SZ与stock_list的格式不同拼接时注意小结涨速排行榜是盘中找正在拉升的票的最直接工具。两轮快照法 批量接口100 只股票只用 10 次额度就能排出 Top 30。窗口大小自定义、过滤条件自己加——这是行情软件的固定涨速榜做不到的。加上前几篇的涨跌幅告警#02、涨停池#03、炸板预警#04、盘口分析#05、批量接口省额度#06你的盘中盯盘工具链已经相当完整了。下一篇我们做个股资金流向异动盯盘——成交额突然放大、换手率跳升这类异动往往是主力进场的信号。用窗口比较法一屏抓出来。**⚠️免责声明本文为技术分享所有计算仅展示 Python 编程方法与 API 使用技巧不构成任何投资建议。股市有风险投资需谨慎。 关注「Python实时盯盘与预警」合集共 16 篇从自选股报价到全市场监控、从免费版到企业证书方案——一站式盘中盯盘不求人。