Files
MoFin/docs/xiaoguo-scanner-design.md
T

79 lines
2.4 KiB
Markdown

# 小果独立扫描线 — 全市场主动发现
## 概述
不依赖趋势信号触发,小果自己盯着各种排行榜,主动发现可能有料的股票,搜新闻判断后喂给知微。
## 时序
```
每5分钟(独立cron,不碰现有管道)
小果扫描 → 榜单采样 → 搜索新闻 → LLM判断 → signal_news
知微在下一轮15分钟cron中读到 → 一起分析
```
## 数据源:三榜交集
每轮同时拉:
| 榜单 | 来源 | 速度 | 内容 |
|------|------|------|------|
| 东方财富热榜 | `stock_hot_rank_em()` | <5秒 | 全市场关注度前100,当日 |
| 同花顺轮流榜 | 以下5个轮流,一轮一个 | ~30秒 | 见下表 |
同花顺轮流拉的榜单(每轮换一个):
| 榜名 | 函数 | 说明 |
|------|------|------|
| 创新高 | `stock_rank_cxg_ths()` | 股价突破N日内新高 |
| 量价齐升 | `stock_rank_ljqs_ths()` | 成交量+价格同步上涨 |
| 向上突破 | `stock_rank_xstp_ths()` | 技术形态突破关键位 |
| 连续上涨 | `stock_rank_cxd_ths()` | 连续N天上涨 |
| 连续放量 | `stock_rank_cxfl_ths()` | 连续N天放量 |
**为什么这样组合:** 东方财富热榜代表"大家都在看",同花顺榜单代表"技术面有信号"。一只股票同时上两个榜,比只上一个榜更值得关注。
## 去重策略
每搜完一只股票,记录搜索时间到 `xiaoguo_scan_tracker` 表:
- 同一股票60分钟内不重复搜索
- 如果该股票今日已有 signal_news(来源='xiaoguo'),也不再重复
## 有料判断
小果LLM对每篇新闻判断两条:
```
Q1:这条新闻跟这只股票今天上榜有关吗?
→ 有关(签大单/出业绩/出政策/被监管/有研报)
→ 无关(大盘行情、行业普涨、泛泛而谈)
Q2:利好还是利空?
→ 利好 / 利空 / 中性
```
两条都有明确结果 → 写入signal_news。
## signal_news 表改动
新增 source 字段:
| source | 含义 |
|--------|------|
| trend | 现有管道,由 trend_detector 触发 |
| xiaoguo | 小果扫描,由榜单发现 |
两类信号在 signal_news 里共存。知微判断时可以看到来源,后续可以用来评估哪个渠道更有效。
## 新增表:xiaoguo_scan_tracker
```sql
CREATE TABLE IF NOT EXISTS xiaoguo_scan_tracker (
code TEXT PRIMARY KEY,
name TEXT,
last_scanned_at TEXT,
found_count INTEGER DEFAULT 0
);
```