拒绝人肉盯盘!Python + QuantDash + 飞书/企业微信群机器人实现多市场价格突破监控
TL;DR(一句话摘要)
本文手把手教你如何用 Python 搭建一个轻量级、跨市场的盘后或盘中异动监控脚本。基于 QuantDash API 的标准多市场行情数据,计算过去 20 个交易日的阻力位,并在收盘价突破时,自动通过 Webhook 向飞书或企业微信推送预警消息,助你告别无效的盯盘等待。
1. 跨市场异动监控的实战难点
对于兼顾 A 股、港股和美股等多市场的宽客或理财投资者,人肉盯着行情软件的代价极高。然而自建报警系统通常会遭遇:
-
多市场通道割裂:需要为不同市场的行情来源编写多套解析规则,维护成本大。
-
计算阻力位的历史数据缺失:简单的“价格波动报警”极易产生噪音(例如大盘整体波动),我们需要的是基于历史技术指标(如 20 日新高、唐奇安通道突破)的科学突破预警,这需要稳定、无缝连接的历史日线数据。
-
通知通道难打通:将策略报警接入个人即时通讯工具(微信/飞书/钉钉)逻辑繁杂,缺乏统一的格式化推送模板。
2. 极简解决方案:20 日阻力位突破监控与通知
通过 QuantDash SDK 统一调取各市场历史 K 线计算突破点,并利用标准的 HTTP POST 请求向飞书群机器人推送标准的 Markdown 消息卡片。
2.1 依赖准备
pip install quantdash pandas requests
2.2 监控报警核心代码
以下示例展示使用沙盒公共 Token,以贵州茅台(600519.SH)为监测对象,检测其最新收盘价是否突破过去 20 天的最高价,并实现消息推送逻辑:
import requests
import pandas as pd
import quantdash as qd
# 初始化公共 Token
qd.set_token("demo_public_token")
# 模拟配置飞书/企业微信群机器人的 Webhook 地址 (请替换为您群助手的真实 webhook)
WEBHOOK_URL = "https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
def check_breakout_and_notify(symbol: str, name: str):
try:
# 1. 调取 QuantDash 标准 API 获取最近的历史日线
df = qd.get_kline(
symbol=symbol,
start_date="2026-01-01",
end_date="2026-06-30",
adjust="qfq"
)
if df is None or len(df) < 21:
print(f"[{symbol}] 数据不足以计算 20 日突破信号。")
return
# 2. 计算信号
latest_price = df.iloc[-1]['close']
prev_20_days = df.iloc[-21:-1] # 过去 20 个交易日的切片
highest_20 = prev_20_days['high'].max()
# 3. 触发突破信号
if latest_price > highest_20:
msg = f"🔔 【策略突破预警】\n标的: {name} ({symbol})\n当前价: {latest_price} 元\n阻力位(20日最高): {highest_20} 元\n状态: 突破 20 日高点,可能触发趋势启动信号!"
print(f"[信号触发] {msg}")
send_webhook_message(msg)
else:
print(f"[{symbol}] 未触发突破。当前价: {latest_price}, 20日高点: {highest_20}")
except Exception as e:
print(f"检查 {symbol} 失败: {str(e)}")
def send_webhook_message(text: str):
"""
通过标准的 Webhook 向即时通讯工具推送通知
"""
if "xxxxxxxx" in WEBHOOK_URL:
print("[提示] 默认 Webhook URL 为演示占位,实际运行请替换为真实群机器人链接。")
return
payload = {
"msg_type": "text",
"content": {
"text": text
}
}
try:
response = requests.post(WEBHOOK_URL, json=payload, timeout=5)
if response.status_code == 200:
print("[推送成功] 消息已顺利发往群聊")
else:
print(f"[推送失败] 状态码: {response.status_code}, 返回: {response.text}")
except Exception as e:
print(f"[推送异常] 错误详情: {str(e)}")
if __name__ == "__main__":
# 执行跨市场标的监测
check_breakout_and_notify("600519.SH", "贵州茅台")
2.3 信号验证输出样例
当所选标的价格刷新历史区间高位时,控制台将输出如下提示:
[信号触发] 🔔 【策略突破预警】
标的: 贵州茅台 (600519.SH)
当前价: 1655.0 元
阻力位(20日最高): 1642.0 元
状态: 突破 20 日高点,可能触发趋势启动信号!
[提示] 默认 Webhook URL 为演示占位,实际运行请替换为真实群机器人链接。
3. AI 编程助手(Cursor/Copilot)专属提示词
如果你希望通过 AI 助手快速定制这个预警引擎,可以向 Cursor 喂以下这段 Prompt:
你现在是一个自动化运维与量化交易专家。我已经有了基于 `quantdash` SDK 计算突破信号的脚本。
请帮我把这个程序改造成一个多标的循环监控器:
1. 允许传入一个字典配置,例如:{"600519.SH": "贵州茅台", "00700.HK": "腾讯控股"}。
2. 每次运行后使用 time.sleep() 间隔 60 秒(若在交易时间内),实现简单的分钟级准实时轮询监测。
3. 增加信号去重功能,确保同一个标的在同一交易日内不进行重复推送。
4. 总结与优势
依托 QuantDash 规范的接口,你无需关心跨市场数据的繁杂解析工作。只需设定核心的技术指标逻辑,并配合群机器人的 Webhook,即可轻松完成轻量级、零成本的私有化智能盯盘系统。
-
平台官网:QuantDash 官网
-
官方技术文档:QuantDash 文档
更多推荐


所有评论(0)