拒绝做“盯着盘看”的社畜!用 Python 快速撸一个股票实时异动“弹窗报警器”
做交易最忌讳的一件事就是一不看盘手里的股票就偷偷闪崩或者一不留神自选股拔地而起彻底错过了追高或止盈的机会。对于平时要上班、不能一直盯着电脑屏幕的上班族来说最好的解决办法是让代码替我们“盯盘”。只要自选股价格波动超过我们的阈值电脑就自动弹窗或者鸣笛报警。今天我们就用 Python QuantDash 写一个支持多市场、极简、高稳定的“实时异动弹窗器”。我们需要用到一个用来发电脑系统通知的 Python 库 plyer以及 QuantDash 的 Python SDK该 SDK 提供了稳定的批量实时快照接口[4]。pip install plyer quantdash我们的脚本会在后台运行每隔 15 秒时间可自定义向 QuantDash 的实时行情接口请求一次最新的股票价格。一旦当前价格与我们设定的初始基准价格比如昨日收盘价或你自己的成本价相比涨跌幅超过了设定的预警比例如 2%或者几分钟内急速拉升就会调用 plyer 在你电脑右下角弹出一个系统气泡通知。import time from plyer import notification from quantdash import QuantDash # 1. 初始化 QuantDash 客户端 qd QuantDash(api_key你的_QUANTDASH_API_KEY) # 2. 设定我们要监控的标的及相应的报警阈值 (支持A/港/美股混合监控) WATCH_LIST { 600519.SH: {name: 贵州茅台, threshold_pct: 1.5}, 00700.HK: {name: 腾讯控股, threshold_pct: 2.0}, TSLA.US: {name: 特斯拉, threshold_pct: 3.0} } # 缓存股票的昨日收盘价用来做日内涨跌幅计算 price_cache {} def init_base_prices(): 获取初始基准价格(昨收价) print(正在初始化股票基准价格...) symbols list(WATCH_LIST.keys()) try: # 调用 QuantDash 批量实时快照接口 quotes qd.stock.get_quotes(symbolssymbols) for item in quotes: symbol item.get(symbol) prev_close item.get(prev_close) # 昨收价 last_price item.get(last_price) # 当前最新价 # 如果昨收价拿不到就用最新价作为基准 price_cache[symbol] prev_close if prev_close else last_price print(f[{symbol}] {WATCH_LIST[symbol][name]} 初始化成功昨收基准价: {price_cache[symbol]}) except Exception as e: print(f初始化基准价格失败请检查 API Key 或网络: {e}) def monitor_loop(): symbols list(WATCH_LIST.keys()) print(\n 实时盯盘系统已启动正在后台安全运行...) while True: try: # 批量拉取实时快照 quotes qd.stock.get_quotes(symbolssymbols) for item in quotes: symbol item.get(symbol) last_price item.get(last_price) ext item.get(ext, {}) change_pct ext.get(change_pct, 0.0) # 最新日内涨跌幅 % name WATCH_LIST[symbol][name] limit WATCH_LIST[symbol][threshold_pct] # 检查最新价格和日内绝对涨跌幅是否超过我们设定的阈值 if abs(change_pct) limit: msg f最新价: {last_price} | 今日涨跌幅: {change_pct:.2f}% (设定阀值: {limit}%) print(f⚠️ 【异动预警】{name}({symbol}) - {msg}) # 触发本地系统弹窗 notification.notify( titlef 股票异动预警: {name}, messagemsg, app_namePython盯盘助手, timeout5 # 弹窗停留5秒 ) # 15 秒轮询一次 time.sleep(15) except KeyboardInterrupt: print(\n 盯盘系统已退出。) break except Exception as e: print(f轮询过程中发生异常: {e}) time.sleep(10) if __name__ __main__: init_base_prices() if price_cache: monitor_loop()很多小白刚学 Python喜欢写 requests 去爬财经网站。如果你只盯着 1 只股票确实勉强可以。但当你盯着十几只跨越 A 股、港股、美股的组合时爬虫往往会遇到反爬限制频繁请求直接被封禁 IP[2]。多源维护地狱美股要去雅虎财经抓港股要去新浪财经代码极其繁杂网页结构稍一改版报警器直接“罢工”[2]。而通过 QuantDash 提供的 qd.stock.get_quotes 接口它不仅在一个请求里把所有跨国市场的标的价格、昨收、日内涨跌幅统一配齐而且响应速度极快、延迟低[5]彻底解决个人开发者重复造“数据轮子”的痛点。相关链接 QuantDash 官方QuantDashPython SDK 快速开始快速开始 - QuantDash