A股智能盯盘机器人 v8.0.2
基于新浪财经免费API的 A 股实时盯盘系统。集成五大基础指标 + v6.0 三书知识增强 + v7.0 威科夫 VPA + v8.0 网络弹性与一键自检,支持钉钉 Webhook 自动推送告警。
> 📌 v8.0.2 数据诚实性升级:指标数据缺失时明示缺失清单、不再用占位值参与信号统计;交易日判断升级为「在线交易日历(上证指数实际开市记录,权威)+ 本地节假日表兜底」;不输出买卖/仓位建议,仅多空信号统计。
> 📌 v8.0 重点升级:网络断/超时自动重试 3 次(1s→2s→4s),错误提示直接给出可执行建议;新增 self_check 一键自检;新增 FAQ.md。
30 秒极速上手
# 1. 创建监控清单(每行一只股票,6位代码)
echo 300469 > watchlist.txt
echo 000547 >> watchlist.txt
# 2. 配置钉钉 Webhook(写到 config.json 让计划任务也能读取)
cat > config.json << 'EOF'
{"DINGTALK_WEBHOOK": "https://oapi.dingtalk.com/robot/send?access_token=xxx"}
EOF
# 3. 一键自检(强烈推荐先跑一次)
python main.py self_check
# 4. 试跑(不推送,仅看行情+指标)
python main.py test
# 5. 正式运行(自动判断交易时段)
python main.py run
跑通上面 5 步就完成了 80% 的使用场景。剩下 20% 看下面的"我该用哪个功能"。
我该用哪个功能
| 你的需求 | 该用这个 |
|---|---|
| 涨跌幅超阈值时给我钉钉告警 | python main.py run(自动盯盘) |
| 测试一下,先别推钉钉 | python main.py test |
| 钉钉收不到消息,排查 | python main.py self_check |
| 单只股票详细技术分析 | python main.py analyze 600519 |
| 批量分析多只股票(不推送) | python main.py analyze 或 batch_analyze API |
| 手动立即执行(跳过交易时段判断) | python main.py force |
| 写自定义告警规则 | 编辑 rules.json(见下文) |
| 配置钉钉推送设置 | 编辑 config.json 或环境变量 |
| 找常见问题答案 | FAQ.md |
常用操作
1. 自动盯盘(核心功能)
python main.py run
按 Windows 计划任务 设定的频率自动跑,会做:
- 判断是否交易日 + 交易时段(否则跳过)
- 获取监控清单(
watchlist.txt) - 调新浪 API 获取实时行情(带 3 次指数退避重试)
- 计算 81 项技术指标 + 多空信号统计
- 评估规则引擎,触发即推钉钉(带冷却期去重)
2. 一键自检(v8.0 新增)
python main.py self_check
检查 6 项:Python 版本、配置文件、监控清单、新浪 API 连通、钉钉 Webhook、交易日历(在线日历+本地节假日表)。每项失败都会给可执行建议。这是排错的第一站。
3. 监控清单 watchlist.txt
600519 # 用全局默认阈值(涨5% 跌5%)
000001 3.0 # 涨跌幅都用 3%
300750 4.0 5.0 # 涨4% 跌5%(独立设置)
# 注释行以 # 开头
4. 规则引擎 rules.json
{
"rules": [
{
"name": "MACD金叉+放量",
"stock": "300469",
"logic": "AND",
"conditions": [
{"metric": "macd_golden_cross", "op": "==", "value": 1},
{"metric": "amount", "op": ">=", "value": 50000000}
],
"cooldown": 86400
}
]
}
logic:AND(全部满足)/OR(任一)op:>= > <= < == !=cooldown: 规则级推送冷却秒数(重要信号建议 86400 防止轰炸)
完整指标字典见下文"进阶"。
5. 配置文件 config.json(可选)
{
"DINGTALK_WEBHOOK": "https://oapi.dingtalk.com/robot/send?access_token=xxx",
"DINGTALK_SECRET": "",
"DATA_SOURCE": "online",
"ALERT_UP_THRESHOLD": 5.0,
"ALERT_DOWN_THRESHOLD": 5.0,
"PUSH_COOLDOWN": 300,
"NETWORK_RETRY_TIMES": 3,
"NETWORK_RETRY_BASE_DELAY": 1.0
}
config.json 用于 Windows 计划任务(计划任务不继承交互式环境变量)。
v8.0 三大新能力
网络弹性(指数退避重试)
所有外部请求(行情、K线、钉钉)默认重试 3 次:
| 失败次数 | 第N次重试前等待 |
|---|---|
| 第1次失败 | 1 秒 |
| 第2次失败 | 2 秒 |
| 第3次失败 | 4 秒 |
超过 3 次后给出友好提示(如 ❌ 获取在线行情最终失败 👉 检查网络...)。
可调整:
- NETWORK_RETRY_TIMES=5 加重试
- NETWORK_RETRY_BASE_DELAY=2.0 加基础延迟
友好诊断
v7.0 错误是 获取在线行情失败: <urllib错误>;v8.0 升级为:
❌ 新浪实时行情(4只)最终失败:已重试3次仍无法成功(最后错误:网络超时)
👉 网络响应慢,建议:①检查本地网络 ②稍后重试 ③尝试切换到 tdx 数据源
错误类型 → 建议映射:
- 超时 → 查网络 / 切 tdx
- 连接错误 → 查防火墙 / 自测 hq.sinajs.cn
- HTTP 4xx/5xx → 看是不是被限流
一键自检 self_check
python main.py self_check
输出 6 项 ✅/❌ 状态 + 失败建议。等同于 call_skill("stock-monitor-dingtalk", {"action": "self_check"})。
进阶:指标字典(按需查阅)
五大基础指标
| 指标key | 说明 | 触发条件 |
|---|---|---|
macd_golden_cross |
MACD金叉 | DIF从下方穿越DEA |
macd_death_cross |
MACD死叉 | DIF从上方穿越DEA |
macd_dif_cross_up |
DIF上穿零轴 | DIF由负转正 |
kdj_golden_cross |
KDJ金叉 | K从下方穿越D |
kdj_death_cross |
KDJ死叉 | K从上方穿越D |
kdj_overbought |
KDJ超买 | K>80 或 D>80 |
kdj_oversold |
KDJ超卖 | K<20 或 D<20 |
rsi_overbought |
RSI超买 | RSI(14)>70 |
rsi_oversold |
RSI超卖 | RSI(14)<30 |
boll_upper_breakout |
突破布林上轨 | 现价>上轨 |
boll_lower_breakout |
跌破布林下轨 | 现价<下轨 |
ma_bullish |
均线多头排列 | MA5>MA10>MA20>MA60 |
ma_bearish |
均线空头排列 | MA5<MA10<MA20<MA60 |
is_limit_up |
涨停 | 现价>=涨停价 |
is_limit_down |
跌停 | 现价<=跌停价 |
数值类:price / change_pct / amplitude / volume / amount / bid_ask_ratio / macd_dif / macd_dea / macd_hist / kdj_k / kdj_d / kdj_j / rsi_14 / boll_upper / boll_middle / boll_lower / ma5 / ma10 / ma20 / ma60
v6.0 三书增强指标
| 指标key | 含义 |
|---|---|
volume_ratio |
量比(≥1.5放量,≤0.7缩量) |
atr_14 / atr_pct |
ATR(14) 波动率 |
adx_14 / adx_trending |
ADX 趋势强度(≥25趋势市,<20横盘市) |
gap_up / gap_down / gap_size_pct |
向上/向下缺口 |
gap_is_breakaway |
突破缺口(新高+量比≥1.5) |
gap_is_exhaustion |
衰竭缺口(急涨+超买背景) |
is_new_high_20d / is_new_low_20d |
20日新高/新低 |
valid_breakout_up / valid_breakdown |
有效突破/跌破 |
basing_point / stop_loss_line |
基准点/动态止损线(只上移不下调) |
stop_line_hit |
跌破动态止损线(纪律离场信号) |
v7.0 威科夫 VPA 指标
| 指标key | 含义 |
|---|---|
vpa_top_divergence |
量价顶背离(涨势量能递减) |
vpa_bottom_divergence |
量价底背离(抛压衰竭) |
vpa_bull_trap |
多头陷阱(高实体阳线无量) |
vpa_shooting_star |
射击十字星 |
vpa_shooting_stars_double |
连续射击十字星(强烈弱势) |
vpa_hammer |
放量锤头线(局内人买入) |
vpa_hanging_man |
吊人线(弱势先兆) |
vpa_long_legged_doji |
长腿十字线(局内人操纵) |
vpa_volume_stop_fall |
放量止跌 |
vpa_volume_stop_rise |
放量止涨 |
vap_support / vap_support_strength |
VAP 强支撑价+强度 |
vap_resistance / vap_resistance_strength |
VAP 强阻力价+强度 |
isolated_high_pivot / isolated_low_pivot |
孤立高位/低位支点 |
mtf_60min_trend |
60分钟趋势(1/-1/0) |
mtf_aligned / mtf_conflict |
多周期共振/冲突 |
多空信号统计(非交易建议)
| 加权差值 | 信号倾向 |
|---|---|
| ≥ 5 | 📊 多头信号明显占优 |
| 3 ~ 4 | 📊 多头信号占优 |
| 1 ~ 2 | 📊 多头信号略占优 |
| -1 ~ 0 | 📊 多空信号基本均衡 |
| -2 ~ -3 | 📊 空头信号占优 |
| ≤ -4 | 📊 空头信号明显占优 |
> ⚠️ 重要说明:各信号权重为人工设定,未经历史回测验证,本表仅反映技术指标的
> 客观计数与加权差值,不映射为买入/卖出/加减仓结论,也不提供任何仓位建议。
> 如需交易决策依据,请自行完成回测验证。
API 接口(开发者用)
通用调用
result = call_skill("stock-monitor-dingtalk", {
"action": "...", # 必填
"dingtalk_webhook": "...", # 可选
"watchlist": [...], # 可选
"rules": [...], # 可选
"force": False # 可选
})
全部 action 速查
| action | 用途 | 必填参数 |
|---|---|---|
monitor |
正式盯盘(判断交易时段) | dingtalk_webhook 或环境变量 |
force |
强制盯盘(跳过判断) | 同上 |
test |
测试行情+指标(不推送) | - |
send_test_msg |
发送测试钉钉消息 | dingtalk_webhook |
analyze |
分析单只股票 | code |
batch_analyze |
批量分析 | codes |
self_check |
v8.0 一键自检 | - |
返回格式(通用)
{
"success": true,
"action": "...",
"checked": 4,
"triggered": 1,
"alerts": [...],
"message": "盯盘完成: 检查4只, 触发1条告警"
}
故障排查速查表
| 现象 | 第一步 | 第二步 |
|---|---|---|
| 钉钉收不到消息 | python main.py self_check |
看 Webhook 是不是过期/关键词不对 |
| 行情获取不到 | python main.py self_check |
看是不是断网或被新浪限流 |
| 某只股票没数据 | 浏览器访问 https://hq.sinajs.cn/list=sh600519 |
确认股票代码正确 + 未停牌 |
| 规则不触发 | python main.py test 看指标值 |
对照指标字典确认 metric 拼写 |
| 报错看不懂 | 看 monitor.log |
顶部加了 👉 的是可执行建议 |
| 重复推送轰炸 | cooldown 调大(重要信号设 86400) |
删 pushed_record.json 重置 |
| 提示"非交易日" | 看日期是不是节假日 | HOLIDAYS_2027 块可手动改 |
| 提示"超出节假日覆盖" | 编辑 monitor_stocks.py 补下一年 |
顶部的 HOLIDAYS_2027 块 |
完整 FAQ(含每种错误的详细排查步骤):FAQ.md
环境变量
| 变量 | 默认 | 说明 |
|---|---|---|
DINGTALK_WEBHOOK |
(必须) | 钉钉机器人 Webhook |
DINGTALK_SECRET |
空 | 加签密钥(启用加签安全设置时必填) |
DATA_SOURCE |
online | online / tdx |
WATCHLIST_FILE |
watchlist.txt | 监控清单文件 |
ALERT_UP_THRESHOLD |
5.0 | 涨幅告警阈值(%) |
ALERT_DOWN_THRESHOLD |
5.0 | 跌幅告警阈值(%) |
DINGTALK_AT_ALL |
false | 是否@所有人 |
PUSH_COOLDOWN |
300 | 推送冷却秒数 |
MSG_INTERVAL |
1.0 | 消息间隔(防钉钉限流) |
NETWORK_RETRY_TIMES |
3 | v8.0 网络重试次数 |
NETWORK_RETRY_BASE_DELAY |
1.0 | v8.0 重试基础延迟秒数 |
TDX_FILE_PATH |
D:\new_tdx\T0002\export\自选股行情.txt |
通达信数据源 |
版本演进
- v5.0:基础版(五大指标 + 涨跌幅阈值)
- v6.0:三书知识增强(ATR/ADX/量比/缺口/有效突破/动态止损)
- v7.0:威科夫 VPA(量价背离/关键K线/伪突破/VAP/多周期)
- v8.0(当前):网络弹性(指数退避重试)+ 友好诊断 + 一键自检 + 渐进式文档
风险提示
本系统仅供行情监控参考,不构成投资建议。技术指标有滞后性,量价分析对极端行情失效概率上升。