← 返回工具目录 · 全部教程

自选股异动提醒:大涨大跌/放量第一时间知道

系列·本地复盘篇 04 — 把盯盘的活交给规则引擎,触发才找你,路径三在此收官

📖 本篇是《本地 AI 复盘系统》第 4 篇,前置:收盘后自动生成 AI 复盘笔记(复用它的推送通道与环境)。

01 · 先想清楚:提醒是为了少看盘

告警系统的最大敌人是告警疲劳:规则太松,一天震 50 条,第三天你就开始无视它。 所以设计原则只有一条——宁可漏,不可滥。起步只开两三条最痛的规则,跑一周再加。

02 · 拿实时行情:轮询快照

import akshare as ak
import time
from datetime import datetime

def market_open() -> bool:
    now = datetime.now()
    t = now.hour * 100 + now.minute
    return now.weekday() < 5 and (925 <= t <= 1130 or 1300 <= t <= 1505)

while market_open():
    try:
        spot = ak.stock_zh_a_spot_em()          # 全市场快照,一次拉回
        rows = spot[spot["代码"].isin(WATCHLIST)]
        check_rules(rows)                        # 第 03 节
    except Exception as e:
        log(f"fetch fail: {e}")                  # 失败写日志,继续下一轮
    time.sleep(60)                               # 一分钟一轮,对自选监控足够

快照字段是中文列名(代码/名称/最新价/涨跌幅/成交量),照旧先 rename 再用。 一分钟一次 × 每次一个请求,远低于数据源的容忍线;别手痒改成秒级,那是被封 IP 的最快方式。

03 · 规则引擎:配置化 + 节流

规则写在配置里而不是代码里,改阈值不动代码:

# rules.yaml
- name: 大涨
  cond: "pct >= 5"
- name: 大跌
  cond: "pct <= -5"
- name: 放量上涨
  cond: "pct >= 3 and vol_ratio >= 2"   # 量比 = 实时成交量/近5日均量(按开市时长折算)

节流是防疲劳的关键:同一只票 + 同一条规则,一天只推第一次。用一个内存字典记录当天已推的(code, rule) 组合即可(脚本重启会丢,丢了最多多推一条,可接受)。

推送复用复盘笔记篇的通道(Server酱/邮件),消息就三行:代码名称、触发规则、当前价与涨幅。

04 · 部署形态:想清楚电脑的角色

05 · 验收清单

06 · 避坑清单

🏁 路径三完成:本地库自动更新、AI 每天写复盘、异动实时提醒——一套不花服务器钱的个人复盘系统。 回到 教程路径总览 看看另外两条路径,或逛逛工具目录 给系统添装备。

教程不构成任何投资建议;免费接口与推送服务的额度规则以官方页面为准。