# 全市场潜力股挖掘系统 ## 概述 全自动管道:盘中每15分钟采集全市场数据 → 检测异动 → 搜新闻分析 → 我判断 → 出推荐。 所有数据存入 `mofin.db`(SQLite),统一供 Dashboard 市场模块展示。 --- ## 一、时序总览 ``` 交易日,每15分钟一轮,覆盖沪深A股+港股 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 上午: 9:25 采集链(75秒)+ 我判断 + 推报告 ← A股集合竞价完毕+港股已交易1.5h 9:40 9:55 10:10 10:25 10:40 10:55 11:10 11:25 11:40 ⚡ A股休市,港股交易中 11:55 ⚡ 同上 下午: 13:05 13:20 13:35 13:50 14:05 14:20 14:35 14:50 15:05 15:20 15:35 15:50 ← 最后一轮(港股收市前10分钟) 每天21轮。12:10-12:55午休跳过。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 每轮流程(全部在一个cron内完成,~2-3分钟): ① market_watch → 拉90个行业板块数据 ② trend_detector → SQL检测17种信号 ③ mofin_news → 搜新闻(原文入库) ④ 我(知微)→ 判断信号 → 更新候选池 → 推报告/紧急消息 ``` --- ## 二、数据采集(:43,no_agent) ### market_watch.py 拉同花顺90个行业板块,写入 `mofin.db`: **market_snapshots**(每次一条): | 字段 | 说明 | |------|------| | timestamp | 采集时间 | | source | ths / eastmoney | | up_ratio | 上涨板块占比(%) | | mood | bullish / neutral / bearish | **sector_snapshots**(每条一个板块,关联 snapshot_id): | 字段 | 说明 | |------|------| | name | 板块名,如"半导体" | | change_pct | 涨跌幅(%) | | up_count / down_count | 上涨/下跌家数 | | net_inflow | 资金净流入(亿) | | lead_stock | 领涨股名 | | lead_stock_change | 领涨股涨跌幅 | --- ## 三、趋势检测(:45,no_agent) ### trend_detector.py 读取最新 snapshot,检测17种信号,写入 `sector_signals` 表。 按5类维度划分: **A. 资金流信号** | 信号 | 逻辑 | 严重性 | |------|------|--------| | A1 资金异动 | 单次净流入/出 > 近10次均值 + 3σ | high(>5σ) / medium(3-5σ) | | A2 持续资金流入 | 连续≥3次净流入且逐次递增 | low | | A3 持续资金流出 | 连续≥3次净流出且逐次扩大 | low | | A4 资金转向 | 净流入从正转负或负转正 | medium | **B. 涨跌结构信号** | 信号 | 逻辑 | 严重性 | |------|------|--------| | B1 涨跌比反转 | 上涨占比变化 > 30个百分点 | medium | | B2 持续走强 | 连续≥3次涨幅排全市场前10 | low | | B3 持续走弱 | 连续≥3次跌幅排全市场前10 | low | | B4 普涨背离 | 涨 > 3% 但上涨家数 < 50% | medium | | B5 极端分化 | 涨跌家数比 > 5:1 或 < 1:5 | medium | **C. 领涨/成分股信号** | 信号 | 逻辑 | 严重性 | |------|------|--------| | C1 领涨股更替 | 领涨股与前2次采集不同 | medium | | C2 领涨股极端涨幅 | 领涨股单次涨跌幅 > 15% | medium | **D. 趋势拐点信号** | 信号 | 逻辑 | 严重性 | |------|------|--------| | D1 趋势反转(多→空) | 连续≥3次净流入后突然转流出 | high | | D2 趋势反转(空→多) | 连续≥3次净流出后突然转入流 | high | | D3 量价背离(涨) | 涨 > 2% 且资金净流出 > 均值2倍 | medium | | D4 量价背离(跌) | 跌 > 2% 且资金净流入 > 均值2倍 | medium | **E. 关联信号** | 信号 | 逻辑 | 严重性 | |------|------|--------| | E1 板块轮动 | 前次TOP3全部跌出前10 | medium | | E2 产业链联动 | 同产业链多板块同时触发A/B/D类 | low | | E3 持仓关联 | 持仓股所在板块触发任何high信号 | high | 写入 `sector_signals` 时附带: - related_stocks — 该板块的领涨股 + 成分股(从 stock_sectors 查) - holdings_in_sector — 该板块中的持仓股(查 holdings 表) - watchlist_in_sector — 该板块中的自选股(查 watchlist_stocks 表) --- ## 四、新闻采集(:48,no_agent) ### mofin_news.py 读取未处理 signal(每次1条),用 akshare 搜新闻: - 搜索范围:领涨股 + 成分股 + 持仓股 + 自选股 - 去重后取前5篇,含标题 + 正文全文 - 写入 signal_news,标记「待知微判断」 **不做情感分析,不调LLM。** 新闻分析由知微在下一轮cron中完成。 | 字段 | 说明 | |------|------| | signal_id | 关联 sector_signals | | overall_sentiment | 总体情感(利好/利空/中性) | | summary | 汇总摘要 | | key_articles | JSON [{title, sentiment, summary}] | | searched_stocks | 本次搜了哪些股票 | **节流规则:** 同一板块同一signal类型24小时内已有 → 跳过。无未处理 signals → 本轮跳过。 --- ## 五、知微判断与决策(:00/:15/:30/:45,LLM cron) 盯盘 cron prompt 中包含信号处理逻辑。 ### 5.1 处理流程 ``` 进入盯盘 cron 后: ──────────────────────────────────────── 1. 读最近15分钟的 signal_news(高严重性优先) │ 2. 逐条判断: │ ├── severity=high 且 sentiment=利空 │ → 检查持仓中是否有该板块个股 │ → 有 → 推老爸(风险预警) │ → 无 → 记入待观察 │ ├── severity=high 且 sentiment=利好 且置信 │ → 查腾讯API实时价 │ → 判断入场条件是否成熟(现价在合理区间) │ ├── 可操作 → 给星级+策略 → 插入candidates │ │ → 同时加入 watchlist_stocks 表(自动入自选) │ │ → 推老爸(今日推荐) │ └── 需等待 → 标记待观察,记录入场条件 │ └── severity=medium/low → 累积,收盘汇总 │ 3. 照常做持仓/自选盯盘输出 如果本轮有紧急推荐,单独推一条消息;盯盘报告里不加额外篇幅 ``` ### 5.2 推送给老爸的规则 只在以下情况才推: | 情况 | 推送内容 | 渠道 | |------|---------|------| | 持仓股板块出现利空 | 风险预警+建议操作 | 立即推 | | 发现高置信潜力股,现价在买入区内 | 推荐+星级+入场策略 | 立即推 | | 常规盯盘报告 | 三段式600字以内 | 定时走cron | ### 5.3 自动加入自选 当确认一只新的潜力股(不在持仓且不在自选)时: - 写入 candidates 表 - 同时 INSERT INTO watchlist_stocks - 这样 Dashboard 自选模块和策略引擎都能看到 --- ## 六、收盘后处理(16:00,LLM cron) 盘中每轮已经完成了判断和推送。16:00额外一轮主要是做**知识萃取**: - 回顾当日所有 signals + 判断记录 - 提炼可复用的判断经验 → 写入 analyst-knowledge-log.md - 供后续分析参考 --- ## 七、数据库表 ### 市场信号相关表 | 表 | 用途 | 关键字段 | |----|------|---------| | market_snapshots | 每次采集元信息 | id, timestamp, up_ratio, mood | | sector_snapshots | 板块快照 | snapshot_id, name, change_pct, net_inflow | | sector_signals | 检测到的异常信号 | type, sector, severity, related_stocks, processed | | signal_news | 小果情报分析 | signal_id, overall_sentiment, summary, key_articles | | candidates | 候选池 | code, zhiwei_star, promoted, dropped | | candidate_score_history | 评分变更历史 | code, score, source, created_at | ### 自选自动写入 新确认的潜力股自动写入 `watchlist_stocks` 表,Dashboard 自选模块即时可见。 --- ## 八、Dashboard 市场模块展示 mofin.db 中的所有数据直接在 Dashboard 上展示: | Dashboard 页面 | 数据源 | 刷新频率 | |---------------|--------|---------| | 行业热点 | market_snapshots + sector_snapshots 最新一次 | 每15分 | | 知微洞察 | signal_news(当日汇总) | 每15分 | | 潜力股挖掘 | candidates(zhiwei_star 非空) | 实时 | | 自选股 | watchlist_stocks | 实时 |