拒绝做“盯着盘看”的社畜!用 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(symbols=symbols)
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(symbols=symbols)
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(
title=f"📈 股票异动预警: {name}",
message=msg,
app_name="Python盯盘助手",
timeout=5 # 弹窗停留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 股、港股、美股的组合时,爬虫往往会:
而通过 QuantDash 提供的 qd.stock.get_quotes 接口,它不仅在一个请求里把所有跨国市场的标的价格、昨收、日内涨跌幅统一配齐,而且响应速度极快、延迟低[5],彻底解决个人开发者重复造“数据轮子”的痛点。
相关链接 :
-
QuantDash 官方:QuantDash
-
Python SDK 快速开始:快速开始 - QuantDash
更多推荐



所有评论(0)