【Python量化实战 #19】盘中盯盘脚本:实时行情监控与涨跌提醒实现
本文是「Python量化实战」系列第 19 篇工程化模块。前面我们把数据批量拉下来、存进 SQLite、画成 K 线——但这些都是盘后复盘。真正想盘中抓住机会需要让脚本盯着行情跑自选股涨到/跌到阈值就自动提醒。本文用60 行核心代码搭一个可运行的盘中盯盘器实时轮询 涨跌幅阈值 本地告警日志生产环境还能直接接到钉钉/企微 webhook。本文你将得到什么一个完整可运行的盘中盯盘脚本轮询、阈值、告警用stock_real_time拉取实时行情的真实代码与返回字段解读告警通道的最小可复现版本本地 JSONL 日志 webhook 结构实盘部署的 4 个注意点频率、异常、日志、去重下篇预告#20 把稳定获取这件事讲透——重试、缓存、防封 IP一、在线体验想先在线试试接口效果打开 API Playground 即可直接调用测试https://mairuiapi.com/playground本文用到stock_real_time单票实时行情接口返回最新价、涨跌幅、成交量等字段盘中监控主要靠它。二、环境准备本文代码使用 mairui SDK 获取股票数据安装方法如下pipinstallmairuiSDK 的完整接口文档与使用说明请查阅 GitHub 仓库https://github.com/MaiRuiApi/mairui接口的详细参数说明请查阅官网 API 文档https://mairuiapi.com/hsdata运行环境Python 3.9mairui SDK 1.0.0pandas 2.2可选本文未强制使用importosimportmairui# 证书从环境变量读取官网注册后获取不要写死在代码里apimairui.Client(os.environ[MAIRUI_LICENCE])本文数据截至 2026-07-31 盘中读者复现时行情会不同但代码逻辑不变。三、为什么需要盘中盯盘脚本手动刷行情有三大问题痛点后果盯盘耗时策略信号来了你还在刷其他页面情绪干扰涨跌一刺激就临时改计划反应慢涨停/跌停发生在几秒之内人工来不及Python 盯盘脚本的价值是把规则前置提前设好阈值让程序 7×24 秒级监控触发才通知你。你只在有情况时看一眼而不是一直盯着屏幕。四、实时行情接口stock_real_time先单独跑一次接口看返回什么importos,mairui apimairui.Client(os.environ[MAIRUI_LICENCE])snapapi.stock_real_time(600519)print(snap)真实输出2026-07-31 盘中{ pe: 15.25, ud: -33.59, pc: -2.4667, zf: 0.7512, tr: 0.17, pb_ratio: 7.04, p: 1328.17, o: 1330.03, h: 1336, l: 1325.77, yc: 1361.76, cje: 2875668300, v: 21622, pv: 2162161, tv: 5, t: 2026-07-31 09:55:26 }关键字段p最新价pc涨跌幅%ud涨跌额o/h/l开盘价/最高价/最低价v/cje成交量/成交额t数据时间戳监控逻辑只需要两件事定时轮询比较pc与阈值。五、核心代码自选股池 阈值告警importos,sys,time,json,loggingfromdatetimeimportdatetimefrompathlibimportPathimportmairui# 自选股池每只股票可设不同阈值WATCHLIST[{code:600519,name:贵州茅台,alarm_pct:2.0},{code:000001,name:平安银行,alarm_pct:1.5},{code:000333,name:美的集团,alarm_pct:1.5},{code:002594,name:比亚迪,alarm_pct:2.5},]POLL_INTERVAL5# 轮询间隔秒实盘建议 15~60 秒logging.basicConfig(levellogging.INFO,format%(asctime)s [%(levelname)s] %(message)s,)ALERT_LOGPath(alerts.jsonl)defsend_alert(stock,snapshot):把告警写入本地 JSONL生产环境可改为钉钉/企微 webhook。msg{time:datetime.now().isoformat(),code:stock[code],name:stock[name],price:round(snapshot.get(p),2),pct:snapshot.get(pc),text:f{stock[name]}({stock[code]}) 异动现价 ...涨跌幅{snapshot.get(pc):.2f}%,}withALERT_LOG.open(a,encodingutf-8)asf:f.write(json.dumps(msg,ensure_asciiFalse)\n)logging.warning(msg[text])defmain():apimairui.Client(os.environ[MAIRUI_LICENCE])whileTrue:forstockinWATCHLIST:snapapi.stock_real_time(stock[code])pctsnap.get(pc,0.0)logging.info(f{stock[name]}价{snap.get(p)}涨跌幅{pct:.2f}%)ifabs(pct)stock[alarm_pct]:send_alert(stock,snap)time.sleep(POLL_INTERVAL)if__name____main__:main()关键解释WATCHLIST是配置区股票代码、名称、阈值一目了然方便增减。abs(pct) alarm_pct同时监控大涨和大跌。send_alert()目前写本地alerts.jsonl避免演示依赖外部 webhook接入钉钉/企微只需把msgpost 到对应的 webhook URL。六、完整可运行示例把上面拼成一个端到端脚本并限制演示跑 4 轮后退出# -*- coding: utf-8 -*-盘中盯盘脚本自选股实时行情监控 涨跌幅阈值提醒。importosimportsysimporttimeimportjsonimportloggingfromdatetimeimportdatetimefrompathlibimportPath sys.path.insert(0,str(Path(__file__).resolve().parents[3]/_common))importmairuifrommairui_helperimportload_licence WATCHLIST[{code:600519,name:贵州茅台,alarm_pct:2.0},{code:000001,name:平安银行,alarm_pct:1.5},{code:000333,name:美的集团,alarm_pct:1.5},{code:002594,name:比亚迪,alarm_pct:2.5},]POLL_INTERVAL5MAX_ROUNDS4logging.basicConfig(levellogging.INFO,format%(asctime)s [%(levelname)s] %(message)s,)ALERT_LOGPath(alerts.jsonl)defsend_alert(stock,snapshot):msg{time:datetime.now().isoformat(),code:stock[code],name:stock[name],price:round(snapshot.get(p),2),pct:snapshot.get(pc),threshold:stock[alarm_pct],text:(f{stock[name]}({stock[code]}) 异动现价{snapshot.get(p)}f涨跌幅{snapshot.get(pc):.2f}%超过阈值 ±{stock[alarm_pct]}%),}withALERT_LOG.open(a,encodingutf-8)asf:f.write(json.dumps(msg,ensure_asciiFalse)\n)logging.warning(msg[text])defmain():apimairui.Client(load_licence())logging.info(f盯盘启动监控{len(WATCHLIST)}只股票)for_inrange(MAX_ROUNDS):forstockinWATCHLIST:snapapi.stock_real_time(stock[code])pctsnap.get(pc,0.0)logging.info(f{stock[name]}({stock[code]}) 价{round(snap.get(p),2)}涨跌幅{pct:.2f}%)ifabs(pct)stock[alarm_pct]:send_alert(stock,snap)time.sleep(POLL_INTERVAL)if__name____main__:main()真实运行输出2026-07-31 09:57 验证节选2026-07-31 09:57:18,600 [INFO] 盯盘启动监控 4 只股票 2026-07-31 09:57:18,678 [INFO] 贵州茅台(600519) 价1326.93 涨跌幅-2.56% 2026-07-31 09:57:18,680 [WARNING] 贵州茅台(600519) 异动现价 1326.93涨跌幅 -2.56%超过阈值 ±2.0% 2026-07-31 09:57:18,701 [INFO] 平安银行(000001) 价11.32 涨跌幅-2.50% 2026-07-31 09:57:18,701 [WARNING] 平安银行(000001) 异动现价 11.32涨跌幅 -2.50%超过阈值 ±1.5% 2026-07-31 09:57:18,723 [INFO] 美的集团(000333) 价85.58 涨跌幅-3.79% 2026-07-31 09:57:18,723 [WARNING] 美的集团(000333) 异动现价 85.58涨跌幅 -3.79%超过阈值 ±1.5% 2026-07-31 09:57:18,744 [INFO] 比亚迪(002594) 价94.47 涨跌幅-1.43%本次演示中茅台、平安银行、美的集团均触发阈值告警比亚迪未触发。告警记录写入alerts.jsonl{time:2026-07-31T09:57:18.679462,code:600519,name:贵州茅台,price:1326.93,pct:-2.5577,threshold:2.0,text:贵州茅台(600519) 异动现价 1326.93涨跌幅 -2.56%超过阈值 ±2.0%}七、避坑与进阶坑 1轮询太频繁触发限流。实盘建议间隔 ≥15 秒短周期量化可走专业行情通道或 1 分钟 K 线接口不要无节制轮询实时接口。坑 2盘中异常断线没处理。api.stock_real_time()可能因网络抖动抛异常实盘应包try/except并记录失败避免脚本崩溃。坑 3同一告警反复轰炸。当前逻辑每轮都会重新告警生产环境应维护已告警状态同一股票 5 分钟内只发一次。坑 4把脚本跑在本地笔记本上。本地电脑休眠/断网会导致漏监控更稳的姿势是丢到服务器用systemd/supervisor常驻。进阶方向接入钉钉/企微 webhook把send_alert()里的写文件改成requests.post(webhook_url, jsonmsg)。加入成交量异动、涨速最近 N 秒价格变化等多维度告警。结合 #16 的并发能力把自选股池扩展到几十只同时监控。八、总结与延伸本文把盘后看升级到了盘中盯用stock_real_time获取实时行情用自选股池 阈值实现规则化监控用 JSONL webhook 结构演示告警通道工程化模块还剩最后一篇#20 专门讲如何稳定、合规地获取股票数据从爬虫被封 IP 的痛点切入给出重试、缓存、异常处理、API 方案等完整稳定性实践。本文为技术演示所有数据来自公开股票接口文中监控方案不构成投资建议。

相关新闻

抖音批量下载终极指南:如何用开源工具实现高效无水印下载

抖音批量下载终极指南:如何用开源工具实现高效无水印下载

抖音批量下载终极指南:如何用开源工具实现高效无水印下载 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…

2026/8/5 11:28:10 阅读更多 →
视频全球化革命:如何用pyVideoTrans让任何视频跨越语言障碍

视频全球化革命:如何用pyVideoTrans让任何视频跨越语言障碍

视频全球化革命:如何用pyVideoTrans让任何视频跨越语言障碍 【免费下载链接】pyvideotrans Translate the video from one language to another and embed dubbing & subtitles. 项目地址: https://gitcode.com/gh_mirrors/py/pyvideotrans 想象一下&…

2026/8/5 11:27:10 阅读更多 →
UE4地形系统核心:Landscape Component架构、性能优化与实战指南

UE4地形系统核心:Landscape Component架构、性能优化与实战指南

1. 项目概述:从零开始理解UE4地形系统如果你刚接触UE4,想构建一个属于自己的宏大游戏世界,那么“地形”绝对是你绕不开的第一个核心模块。在UE4里,我们通常不直接叫它“Terrain”,官方术语是Landscape。而TerrainCompo…

2026/8/5 11:27:10 阅读更多 →

最新新闻

Level 4自动驾驶系统设计25——前级感知 1

Level 4自动驾驶系统设计25——前级感知 1

本文针对地下停车场复杂工况,提出了一套多模态感知系统的空间分辨率与信噪比控制策略。在地下环氧树脂地面引发的电磁多径干扰和低照度环境下,系统采用动态CA-CFAR算法和自适应去噪技术,确保4D雷达点云密度和视觉图像质量达标。通过建立对账机制,当检测到空间残差超过0.3米…

2026/8/5 13:04:50 阅读更多 →
5分钟快速上手Aimmy:免费AI瞄准助手终极指南

5分钟快速上手Aimmy:免费AI瞄准助手终极指南

5分钟快速上手Aimmy:免费AI瞄准助手终极指南 【免费下载链接】Aimmy Universal Second Eye for Gamers with Impairments (Universal AI Aim Aligner (AI Aimbot) - ONNX/YOLOv8 - C#) 项目地址: https://gitcode.com/gh_mirrors/ai/Aimmy Aimmy是一款基于YO…

2026/8/5 13:04:50 阅读更多 →
B站视频下载终极指南:BilibiliDown快速高效批量下载教程

B站视频下载终极指南:BilibiliDown快速高效批量下载教程

B站视频下载终极指南:BilibiliDown快速高效批量下载教程 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors…

2026/8/5 13:04:50 阅读更多 →
时光档案馆:当代码学会了收藏记忆

时光档案馆:当代码学会了收藏记忆

时光档案馆:当代码学会了收藏记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否还记得第一条QQ空间说说的内容?那个青涩的年纪,那些深夜的感…

2026/8/5 13:04:50 阅读更多 →
投标新手必看:第一次投标材料清单

投标新手必看:第一次投标材料清单

第一次投标,很多人最慌的不是做标书,而是不知道该准备哪些材料。打开招标文件一看,要求一大堆,不知道该从哪下手。下面按类别把常用的投标材料清单整理一下,第一次投标的企业可以对照着准备。一、基础资质类营业执照副…

2026/8/5 13:04:50 阅读更多 →
B站视频转换神器:3分钟让缓存视频重获新生

B站视频转换神器:3分钟让缓存视频重获新生

B站视频转换神器:3分钟让缓存视频重获新生 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经在B站缓存了心爱的视频&#xf…

2026/8/5 13:03:50 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →