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

Python 实时监控 A 股行情并自动筛选强势股(REST + WebSocket 两种方案)

Python 实时监控 A 股行情并自动筛选强势股REST WebSocket 两种方案盘中实时监控全市场行情自动筛选涨停、放量上涨、突破均线的股票 – 这是很多量化交易者的刚需。本文用 Python 实现两种方案REST 轮询方案简单易懂和 WebSocket 推送方案低延迟附完整可运行代码。一、盘中行情监控能做什么实时行情监控是从回测走向实盘的关键一步。常见用途涨停板监控第一时间发现涨停或接近涨停的股票放量突破筛选找出成交量异常放大且价格突破关键位的标的自选股盯盘监控持仓或关注的股票触发条件时提醒日内交易信号结合分钟 K 线生成实时买卖信号二、环境准备安装依赖pipinstalltickflow[all]--upgrade实时行情功能需要注册获取 API key访问 tickflow.org登录后在控制台生成 API key配置环境变量推荐或直接传入# Linux / MacexportTICKFLOW_API_KEYyour-api-key# WindowssetTICKFLOW_API_KEYyour-api-key三、方案一REST API 轮询入门推荐REST 方案最简单通过定时请求获取全市场行情快照适合对延迟要求不高的场景。1. 获取全市场实时行情fromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)# 获取全部 A 股实时行情quotestf.quotes.get(universes[CN_Equity_A],as_dataframeTrue)print(f共获取{len(quotes)}只 A 股行情)print(quotes[[symbol,last_price,volume,amount]].head())一次调用即可拿到 5000 只 A 股的实时行情包含最新价、开盘价、最高价、最低价、昨收、成交量、成交额等字段。2. 涨跌幅排行quotes[change_pct](quotes[last_price]-quotes[prev_close])/quotes[prev_close]*100# 涨幅榜 Top 10print(涨幅榜 Top 10:)top_gainersquotes.nlargest(10,change_pct)[[symbol,last_price,change_pct]]print(top_gainers.to_string(indexFalse))# 跌幅榜 Top 10print(\n跌幅榜 Top 10:)top_losersquotes.nsmallest(10,change_pct)[[symbol,last_price,change_pct]]print(top_losers.to_string(indexFalse))3. 涨停股监控# A 股主板涨跌停限制为 10%创业板和科创板为 20%limit_upquotes[quotes[change_pct]9.9]print(f\n涨停或接近涨停:{len(limit_up)}只)print(limit_up[[symbol,last_price,change_pct,amount]].to_string(indexFalse))4. 放量上涨股筛选# 成交额 5 亿 且 涨幅 3%strongquotes[(quotes[amount]5e8)(quotes[change_pct]3)]strong_sortedstrong.sort_values(change_pct,ascendingFalse)print(f\n放量上涨成交额5亿 且 涨幅3%:{len(strong_sorted)}只)print(strong_sorted[[symbol,last_price,change_pct,amount]].head(20).to_string(indexFalse))5. 定时轮询监控将上述逻辑封装为一个定时轮询程序importtimeimportdatetimefromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)defscan_market():扫描全市场返回符合条件的强势股quotestf.quotes.get(universes[CN_Equity_A],as_dataframeTrue)quotes[change_pct]((quotes[last_price]-quotes[prev_close])/quotes[prev_close]*100)# 涨停股limit_upquotes[quotes[change_pct]9.9]# 放量上涨strongquotes[(quotes[amount]5e8)(quotes[change_pct]3)]# 大跌预警跌幅超过 7%big_dropquotes[quotes[change_pct]-7]return{total:len(quotes),limit_up:limit_up,strong:strong,big_drop:big_drop,avg_change:quotes[change_pct].mean(),}defrun_monitor(interval30):每隔 interval 秒扫描一次print(开始监控全市场行情...)whileTrue:nowdatetime.datetime.now()hournow.hour# 只在交易时间运行9:25 - 15:05ifhour9orhour16:print(f[{now:%H:%M:%S}] 非交易时间等待中...)time.sleep(60)continueresultscan_market()print(f\n[{now:%H:%M:%S}] 市场概况:)print(f 全市场平均涨幅:{result[avg_change]:.2f}%)print(f 涨停:{len(result[limit_up])}只)print(f 放量上涨:{len(result[strong])}只)print(f 大跌预警:{len(result[big_drop])}只)iflen(result[limit_up])0:print( --- 涨停股 ---)for_,rowinresult[limit_up].head(5).iterrows():print(f{row[symbol]}:{row[last_price]}({row[change_pct]:.2f}%))time.sleep(interval)run_monitor(interval30)四、方案二WebSocket 实时推送低延迟如果需要更低延迟推荐使用 WebSocket 方案。服务端主动推送行情变动无需轮询。1. 基本用法importdatetimefromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)streamtf.streamstream.on_quotesdefon_quotes(quotes):forqinquotes:tsdatetime.datetime.fromtimestamp(q[timestamp]/1000)extq.get(ext,{})nameext.get(name,)change_pctext.get(change_pct)change_strf{change_pct:.2%}ifchange_pctisnotNoneelseN/Aprint(f[{ts:%H:%M:%S}]{q[symbol]}{name}最新:{q[last_price]}涨跌:{change_str})stream.on_errordefon_error(msg):print(f错误:{msg})# 订阅感兴趣的标的stream.subscribe(quotes,[600519.SH,000001.SZ,600000.SH])stream.connect()# 阻塞运行输出示例[09:31:05] 600519.SH 贵州茅台 最新:1580.00 涨跌:0.82% [09:31:05] 000001.SZ 平安银行 最新:11.12 涨跌:0.54% [09:31:06] 600000.SH 浦发银行 最新:9.89 涨跌:-0.10%2. 带筛选条件的实时监控importdatetimefromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)streamtf.stream alert_threshold5.0# 涨幅超过 5% 时提醒stream.on_quotesdefon_quotes(quotes):forqinquotes:extq.get(ext,{})change_pctext.get(change_pct)ifchange_pctisNone:continuechange_pct_valchange_pct*100ifabs(change_pct_val)alert_threshold:nameext.get(name,)tsdatetime.datetime.fromtimestamp(q[timestamp]/1000)direction大涨ifchange_pct_val0else大跌print(f[{ts:%H:%M:%S}]{direction}{q[symbol]}{name}f最新:{q[last_price]}涨跌:{change_pct_val:.2f}%)symbols[600519.SH,000858.SZ,601318.SH,000001.SZ,600036.SH]stream.subscribe(quotes,symbols)stream.connect()3. 非阻塞模式 动态订阅importtimefromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)streamtf.stream watched{}stream.on_quotesdefon_quotes(quotes):forqinquotes:watched[q[symbol]]q# 后台运行 WebSocketstream.subscribe(quotes,[600519.SH,000001.SZ])stream.connect(blockFalse)# 主线程可以做其他事time.sleep(5)# 动态追加订阅stream.subscribe(quotes,[600036.SH,601318.SH])# 定时打印最新行情for_inrange(10):time.sleep(3)forsymbol,qinwatched.items():extq.get(ext,{})print(f{symbol}:{q[last_price]}({ext.get(name,)}))print(---)stream.close()4. 异步 WebSocketimportasyncioimportdatetimefromtickflowimportAsyncTickFlowasyncdefmain():asyncwithAsyncTickFlow(api_keyyour-api-key)astf:streamtf.streamstream.on_quotesdefon_quotes(quotes):forqinquotes:tsdatetime.datetime.fromtimestamp(q[timestamp]/1000)extq.get(ext,{})nameext.get(name,)print(f[{ts:%H:%M:%S}]{q[symbol]}{name}:{q[last_price]})awaitstream.subscribe(quotes,[600519.SH,000001.SZ])awaitstream.connect()asyncio.run(main())五、进阶结合日内 K 线做实时选股不仅可以看行情快照还可以结合日内分钟 K 线做更精细的分析日内 VWAP 偏离度筛选fromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)symbols[600519.SH,000858.SZ,601318.SH,000001.SZ,600036.SH]dfstf.klines.intraday_batch(symbols,period5m,as_dataframeTrue,show_progressTrue)forsymbol,dfindfs.items():iflen(df)0:continuedf[vwap](df[amount]/df[volume]).round(2)latestdf.iloc[-1]vwap_dev(latest[close]-latest[vwap])/latest[vwap]*100status高于VWAPifvwap_dev0else低于VWAPprint(f{symbol}: 最新价{latest[close]}, VWAP{latest[vwap]},{status}{abs(vwap_dev):.2f}%)分钟级均线突破监控fromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)# 获取日内 5 分钟 K 线dftf.klines.intraday(600519.SH,period5m,as_dataframeTrue)df[ma10]df[close].rolling(10).mean()df[ma30]df[close].rolling(30).mean()# 检查最新是否金叉iflen(df)30:latestdf.iloc[-1]prevdf.iloc[-2]iflatest[ma10]latest[ma30]andprev[ma10]prev[ma30]:print(f600519.SH 日内 5 分钟级别 MA10 上穿 MA30关注)else:print(f600519.SH 日内暂无均线交叉信号)六、ETF 行情监控除了个股ETF 也是很好的监控对象fromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)# 获取全部 ETF 行情etf_quotestf.quotes.get(universes[CN_ETF],as_dataframeTrue)etf_quotes[change_pct]((etf_quotes[last_price]-etf_quotes[prev_close])/etf_quotes[prev_close]*100)# 成交额最大的 ETF通常是宽基 ETFtop_volumeetf_quotes.nlargest(20,amount)print(成交额 Top 20 ETF:)print(top_volume[[symbol,last_price,change_pct,amount]].to_string(indexFalse))# 涨幅最大的 ETF发现热门板块top_changeetf_quotes.nlargest(10,change_pct)print(\n涨幅 Top 10 ETF:)print(top_change[[symbol,last_price,change_pct]].to_string(indexFalse))通过 ETF 涨幅排行可以快速发现当天最热门的板块方向。七、五档盘口数据如果需要更细粒度的分析TickFlow 还提供五档买卖盘口需 Pro/Expert 套餐fromtickflowimportTickFlow tfTickFlow(api_keyyour-api-key)depthtf.depth.get(600519.SH)print(f标的:{depth[symbol]})foriinrange(5):bid_pricedepth[bid_prices][i]bid_voldepth[bid_volumes][i]ask_pricedepth[ask_prices][i]ask_voldepth[ask_volumes][i]print(f 卖{5-i}:{ask_price}x{ask_vol}| 买{i1}:{bid_price}x{bid_vol})八、两种方案对比维度REST 轮询WebSocket 推送延迟取决于轮询间隔秒级毫秒级实现难度简单稍复杂适用场景选股扫描、定时监控盯盘、日内交易资源消耗每次请求有网络开销长连接效率更高全市场支持一次拉取全部行情按标的订阅建议全市场扫描选股- 用 REST一次拿全部数据做筛选自选股盯盘- 用 WebSocket延迟更低两者结合- REST 做定时全市场扫描WebSocket 订阅筛选出的标的做实时监控九、总结本文介绍了两种 Python 实时监控 A 股行情的方案REST 轮询一行代码拿到全市场 5000 只 A 股行情适合定时扫描选股WebSocket 推送毫秒级延迟适合盯盘和日内交易核心功能包括涨跌幅排行涨停股监控放量上涨筛选ETF 板块监控日内 VWAP 偏离分析分钟级均线突破信号TickFlow 提供了统一的 API无论是 REST 还是 WebSocketSDK 都做了良好的封装几行代码即可实现复杂的监控逻辑。相关链接官网https://tickflow.org文档https://docs.tickflow.orgGithubhttps://github.com/tickflow-org/tickflow实盘交易的第一步不是下单而是看到实时的市场。

相关文章:

Python 实时监控 A 股行情并自动筛选强势股(REST + WebSocket 两种方案)

Python 实时监控 A 股行情并自动筛选强势股(REST WebSocket 两种方案) 盘中实时监控全市场行情,自动筛选涨停、放量上涨、突破均线的股票 – 这是很多量化交易者的刚需。本文用 Python 实现两种方案:REST 轮询方案(简…...

XCOM 2模组管理器终极指南:5步掌握AML启动器使用技巧

XCOM 2模组管理器终极指南:5步掌握AML启动器使用技巧 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc…...

R 4.5正式版发布72小时内首发:基因组CNV检出准确率提升37.2%的5个关键配置(附Benchmark原始代码)

更多请点击: https://intelliparadigm.com 第一章:R 4.5正式版发布核心特性与CNV分析范式演进 R 4.5.0(2025年4月发布)标志着统计计算生态在基因组结构变异研究中的关键跃迁。该版本原生强化了大矩阵稀疏存储支持、并行化内存管理…...

为Windows 11瘦身:tiny11builder打造你的专属精简系统

为Windows 11瘦身:tiny11builder打造你的专属精简系统 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否曾为Windows 11的臃肿而烦恼?…...

如何快速掌握Blender插件:PSK/PSA格式高效工作流的完整指南

如何快速掌握Blender插件:PSK/PSA格式高效工作流的完整指南 【免费下载链接】io_scene_psk_psa A Blender extension for importing and exporting Unreal PSK and PSA files 项目地址: https://gitcode.com/gh_mirrors/io/io_scene_psk_psa 你是否正在为Ble…...

TPFanCtrl2终极指南:如何在Windows上完美控制ThinkPad风扇噪音与散热

TPFanCtrl2终极指南:如何在Windows上完美控制ThinkPad风扇噪音与散热 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 你是否曾被ThinkPad风扇的噪音困扰&am…...

效率提升秘籍:用快马平台一键生成arcgis可复用地图工具类

效率提升秘籍:用快马平台一键生成arcgis可复用地图工具类 作为一名长期与arcgis打交道的开发者,我深知地图应用开发中最耗时的环节往往不是业务逻辑本身,而是那些重复性的基础框架搭建。每次新项目都要重新写一遍地图初始化、图层加载、图形…...

安卓虚拟相机终极指南:如何轻松实现视频流替换与隐私保护

安卓虚拟相机终极指南:如何轻松实现视频流替换与隐私保护 【免费下载链接】com.example.vcam 虚拟摄像头 virtual camera 项目地址: https://gitcode.com/gh_mirrors/co/com.example.vcam 你是否曾经希望在视频会议中保护个人隐私?是否想在直播时…...

HPH的三大构造,一篇文章就看懂!

不少人首次碰到HPH这个词,会产生它到底是什么玩意儿的好奇。实际上,在工业制造以及食品医药范畴,HPH所指的便是高压均质机。今儿个我们就运用一种通俗易懂的形式,引领您剖析一下HPH的构造。 HPH的架构并非繁杂,它主要借…...

Cursor智能体开发:键盘快捷键

Cursor 使用与 VS Code 相同的默认快捷键,另外还提供 AI 功能的快捷键。 有哪些常用的 AI 快捷键? 操作MacWindows/Linux切换侧边栏Ctrl I 或 Ctrl LCtrl I 或 Ctrl L行内编辑Ctrl KCtrl K模式菜单Ctrl .Ctrl .在 Agent 模式之间切换Shift Ta…...

YOLOv5训练loss全是NaN?从警告信息‘Non-finite norm’入手,一步步教你定位问题根源

YOLOv5训练中NaN Loss的深度诊断:从Non-finite norm警告到系统性解决方案 当你在YOLOv5训练过程中看到loss值全部变成NaN时,那种挫败感就像在黑暗中摸索却找不到出口。但别担心,那个看似晦涩的"Non-finite norm"警告实际上是照亮问…...

MySQL 5.7/8.0 升级后,你的老项目是不是也报了这个错?手把手教你搞定 only_full_group_by

MySQL 5.7/8.0升级后only_full_group_by报错全攻略:从应急修复到最佳实践 最近在帮客户升级MySQL数据库时,遇到了一个经典问题:原本在5.6版本运行良好的项目,升级到5.7或8.0后突然开始报错"this is incompatible with sql_mo…...

保姆级教程:用Python+PyGame可视化Dijkstra算法,5分钟搞懂路径规划核心

用PythonPyGame动态演示Dijkstra算法:从原理到可视化实现 路径规划算法听起来高深莫测?其实用PythonPyGame就能让它变得直观有趣。今天我们不谈硬件实现,专注用可视化手段拆解Dijkstra算法的核心逻辑。通过这个教程,你将看到算法如…...

别再傻傻分不清了!地震勘探中的层速度、均方根速度、叠加速度到底怎么用?

地震勘探速度参数实战指南:从理论到应用的深度解析 第一次拿到地震速度谱时,那些交织在一起的彩色曲线让我彻底懵了——层速度、均方根速度、叠加速度像一团乱麻,更糟的是,同事随口一句"用均方根速度做动校正"让我在项目…...

终极魔兽争霸III地图编辑器:HiveWE 完整指南与实战教程

终极魔兽争霸III地图编辑器:HiveWE 完整指南与实战教程 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 还在为魔兽争霸III原版编辑器的缓慢加载速度和复杂操作而烦恼吗?你是否曾经在…...

企业内网开发如何通过 Taotoken 统一管理多个大模型 API 调用

企业内网开发如何通过 Taotoken 统一管理多个大模型 API 调用 1. 内网环境下的模型调用挑战 企业研发团队在内网隔离的虚拟机中开发智能应用时,通常会面临多个大模型 API 的管理难题。不同厂商的 API 接入方式各异,密钥分散存储容易造成安全隐患&#…...

OpenCV Stitcher拼接失败?手把手教你调参和解决常见报错(附代码)

OpenCV Stitcher实战调参手册:从报错排查到完美拼接 当你第一次用OpenCV的Stitcher模块跑通代码时,那种成就感就像拼好了乐高套装最后一块积木。但现实往往会在你准备庆祝时泼来一盆冷水——拼接结果出现错位、黑边,或者直接抛出令人困惑的报…...

3分钟永久备份你的QQ空间:GetQzonehistory完整指南

3分钟永久备份你的QQ空间:GetQzonehistory完整指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 还记得那些深夜的感慨、节日的祝福、成长的瞬间吗?QQ空间承载…...

告别宏与代码生成器!C++27静态反射实现全自动DTO/Protobuf双向映射(性能提升4.2×,编译时间仅增±3.1%)

更多请点击: https://intelliparadigm.com 第一章:C27静态反射元编程实战案例 C27 正式引入标准化的静态反射(Static Reflection)核心设施,基于 std::reflexpr 和反射查询接口,使编译期类型结构可被直接遍…...

Termux安装Ubuntu后必做的5件事:从配置中文到安装Docker(保姆级指南)

Termux安装Ubuntu后必做的5件事:从配置中文到安装Docker(保姆级指南) 在Termux中成功安装Ubuntu只是第一步,要让这个移动端的Linux环境真正发挥生产力,还需要进行一系列深度配置。本文将带你完成从基础设置到开发环境搭…...

2025届学术党必备的六大降AI率神器横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 由AIGC检测率的降低,要着手于语言特征以及结构模式这点出发,先说来怎…...

2026最权威的五大降重复率神器横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下,AI生成内容检测技术正日益走向成熟,为了去降低文章AI相似率&…...

三步掌握RPG Maker游戏资源解密:网页工具完全指南

三步掌握RPG Maker游戏资源解密:网页工具完全指南 【免费下载链接】RPG-Maker-MV-Decrypter You can decrypt RPG-Maker-MV Resource Files with this project ~ If you dont wanna download it, you can use the Script on my HP: 项目地址: https://gitcode.com…...

春节复工福利就位!天翼云息壤万Tokens免费送,全品类大模型一键畅玩!

一、背景与问题缘起 MySQL 5.6.51 版本下 2000 万行核心业务表开展新增字段操作,需求为新增BIGINT(19) NOT NULL DEFAULT 0 COMMENT 注释(因业务实际需要存储大数值关联字段)。 表的核心特性为Java 多线程密集读写,业务请求持续高…...

2026届毕业生推荐的六大降重复率助手实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 近期,知网正式上线了AIGC检测服务系统,其目的在于识别学术文本里由人…...

智能绘画革命:Krita AI Diffusion如何重塑数字艺术创作流程

智能绘画革命:Krita AI Diffusion如何重塑数字艺术创作流程 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: https://gi…...

猫抓Cat-Catch:浏览器资源嗅探的终极使用指南

猫抓Cat-Catch:浏览器资源嗅探的终极使用指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的困扰:…...

终极指南:如何在3DS上快速安装和更新自制软件

终极指南:如何在3DS上快速安装和更新自制软件 【免费下载链接】Universal-Updater An easy to use app for installing and updating 3DS homebrew 项目地址: https://gitcode.com/gh_mirrors/un/Universal-Updater Universal-Updater是一款专为任天堂3DS平台…...

告别臃肿!用Rust写的miniserve在Windows上5分钟搞定局域网文件共享

5分钟极速搭建:用Rust版miniserve打造Windows局域网文件共享中心 每次需要临时共享文件给同事时,你是否还在忍受微信传输助手的100MB限制?或是被Windows共享文件夹繁琐的权限设置折磨得焦头烂额?现在,一款由Rust编写的…...

Horos:免费开源的医疗影像查看器,让医学图像分析变得简单

Horos:免费开源的医疗影像查看器,让医学图像分析变得简单 【免费下载链接】horos Horos™ is a free, open source medical image viewer. The goal of the Horos Project is to develop a fully functional, 64-bit medical image viewer for OS X. Hor…...