aa0f740381
完整数据采集+分析管道: - market_watch.py:90行业板块采集(同花顺/东方财富) - 市场精选推荐 cron:全市场分析+候选池+星级推荐 - price_monitor.py:持仓/自选高频价格监控 - refresh_mtf_cache.py:多周期K线缓存 - 策略评估/知识萃取管道 文档:docs/ 含完整需求+架构设计 注意:尚未配置 git remote,笑笑接手后自行配置
188 lines
6.3 KiB
Markdown
188 lines
6.3 KiB
Markdown
# 全市场潜力股挖掘系统设计
|
||
|
||
## 目标
|
||
|
||
打破持仓和自选的局限,从全 A 股市场挖掘新投资标的,附带入场策略和动态星级评分。
|
||
|
||
## 整体架构(两层式)
|
||
|
||
```
|
||
市场数据(market.json)
|
||
│ 每30分更新
|
||
▼
|
||
┌──────────────────────────────────────┐
|
||
│ 第一层:小果本地LLM · 高频低耗 │
|
||
│ │
|
||
│ 每轮1-2个板块,积少成多覆盖全市场 │
|
||
│ → 分析板块趋势 │
|
||
│ → 筛选成分股 │
|
||
│ → 给出初步评分+策略 │
|
||
│ → 写入候选池(candidate_pool.json) │
|
||
└──────────────────┬───────────────────┘
|
||
│
|
||
▼
|
||
┌──────────────────────────────────────┐
|
||
│ 第二层:知微(主模型)· 低频高质 │
|
||
│ │
|
||
│ 每日收盘后 │
|
||
│ → 读候选池 │
|
||
│ → 用技术分析+策略引擎验证 │
|
||
│ → 确认星级(5/4.5/4/3.5/3) │
|
||
│ → 输出最终推荐+推送 │
|
||
│ → 已推荐的标记 promoted │
|
||
└──────────────────────────────────────┘
|
||
```
|
||
|
||
## 候选池设计
|
||
|
||
### candidate_pool.json 结构
|
||
|
||
```json
|
||
{
|
||
"last_updated": "2026-06-19 15:30",
|
||
"total_candidates": 12,
|
||
"sectors_analyzed_today": ["半导体", "消费电子", "汽车零部件"],
|
||
"candidates": [
|
||
{
|
||
"code": "600000",
|
||
"name": "XX股份",
|
||
"sector": "半导体",
|
||
"added_at": "2026-06-19 10:30",
|
||
"last_updated": "2026-06-19 15:30",
|
||
"num_observations": 3,
|
||
"xiaoguo_score": 8.2,
|
||
"xiaoguo_reason": "放量突破前高,板块龙头",
|
||
"xiaoguo_strategy": {
|
||
"entry_range": "18.5~19.2",
|
||
"stop_loss": "17.5",
|
||
"target": "22.0"
|
||
},
|
||
"score_history": [
|
||
{"date": "2026-06-19 10:30", "score": 7.5},
|
||
{"date": "2026-06-19 11:00", "score": 8.0},
|
||
{"date": "2026-06-19 15:30", "score": 8.2}
|
||
],
|
||
"zhiwei_star": null,
|
||
"zhiwei_reviewed": false,
|
||
"zhiwei_reviewed_at": null,
|
||
"promoted": false,
|
||
"promoted_at": null,
|
||
"dropped": false,
|
||
"drop_reason": null
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 候选池治理规则
|
||
|
||
- 评分历程 >= 3 次且均分 < 5 → 自动淘汰
|
||
- 连续 3 次评分下降 → 标记预警,下轮淘汰
|
||
- 超过 7 天未评分 → 标记过期待重评
|
||
- 已 promoted(确认推荐)→ 保留供回顾,不重复推
|
||
|
||
## 第一层:小果筛选(no_agent 脚本)
|
||
|
||
### 文件:market_screener.py
|
||
|
||
**触发频率:** 每 60 分钟(跟随 market_watch 节奏,间隔一次执行)
|
||
|
||
**每轮流程:**
|
||
|
||
1. 读 market.json → 取行业板块涨幅排名
|
||
2. 选择本轮分析的板块:
|
||
- 优先级:涨幅前 10 中「累计分析次数最少」的板块
|
||
- 确保一周内覆盖所有活跃板块
|
||
- 每轮分析 2 个板块
|
||
3. 对每个板块:
|
||
a. `ak.stock_board_industry_cons_ths()` → 取成分股
|
||
b. 基础过滤:涨幅 > 0、价格 3~100 元、有成交量
|
||
c. 取前 5~8 只候选
|
||
d. 调小果 LLM API 分析 → 返回评分+策略
|
||
4. 更新 candidate_pool.json(新增候选 + 刷新已有候选的评分)
|
||
|
||
**小果 LLM Prompt:**
|
||
|
||
```
|
||
你是一位A股市场分析助手。分析以下板块和个股,筛选潜力候选股。
|
||
|
||
板块:{sector_name}
|
||
板块涨幅:{change}%
|
||
上涨/总家数:{up_count}/{total_count}
|
||
资金净流入:{net_inflow}亿
|
||
领涨股:{lead_stock} +{lead_stock_change}%
|
||
|
||
成分股(涨幅前8):
|
||
代码 | 名称 | 现价 | 涨跌幅 | 换手率
|
||
{a} | {b} | {c} | {d} | {e}
|
||
|
||
判断标准:
|
||
1. 板块是真强势还是短期反弹?看量价配合和领涨股持续性
|
||
2. 个股:量价配合好、趋势健康、不是单纯跟涨
|
||
3. 给出 1-10 分(7分以上才值得关注)
|
||
|
||
输出JSON:
|
||
{
|
||
"sector_judgment": "强势|中性|弱势",
|
||
"sector_reason": "一句话理由",
|
||
"candidates": [
|
||
{
|
||
"code": "600xxx",
|
||
"name": "名称",
|
||
"score": 8.5,
|
||
"reason": "选股理由含技术面特征",
|
||
"entry_range": "18.5~19.2",
|
||
"stop_loss": "17.5",
|
||
"target": "22.0"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
**代码注意事项:**
|
||
- 小果 API 调用超时设 120s(27B 模型较慢)
|
||
- 调用失败时跳过该板块,下次重试
|
||
- 输出只写文件,不输出到 stdout(no_agent 静默模式)
|
||
|
||
## 第二层:知微精选(LLM cron)
|
||
|
||
**触发时间:** 每日 16:00(收盘后)
|
||
|
||
**流程:**
|
||
1. 读 candidate_pool.json → 取未 reviewed 且评分 >= 7 的候选
|
||
2. 对每个候选用我的技术分析工具验证
|
||
3. 综合打分 → 星级(5/4.5/4/3.5/3)
|
||
4. 输出最终 2-3 只推荐(含完整策略)
|
||
5. 写入 market.json 的 potential_stocks 字段
|
||
6. 标记 promoted
|
||
|
||
**星级标准:**
|
||
- 5.0:强趋势+板块强势+技术面完美+入场时机佳
|
||
- 4.5:趋势健康+板块向好+技术面良好+有安全边际
|
||
- 4.0:板块和个股都OK,但缺明确催化剂
|
||
- 3.5:有逻辑但需要等待更好入场点
|
||
- 3.0以下:不推荐
|
||
|
||
## 时序与 cron 设计
|
||
|
||
| 时间 | 组件 | 类型 | 频率 | 说明 |
|
||
|------|------|------|------|------|
|
||
| 9:00~15:30 | market_watch | no_agent | 每30分 | 已有,采集板块数据 |
|
||
| 9:30~15:30 | market_screener | no_agent | 每60分 | 新脚本,小果筛股 |
|
||
| 16:00 | 市场精选推荐 | LLM | 每日 | 新cron,我出最终推荐 |
|
||
|
||
## 文件清单
|
||
|
||
| 文件 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| /home/hmo/web-dashboard/market_screener.py | 新脚本 | 小果筛选引擎 |
|
||
| /home/hmo/web-dashboard/data/candidate_pool.json | 新数据 | 候选池 |
|
||
| /home/hmo/web-dashboard/market_insight.py | 废弃 | 被替换 |
|
||
| /home/hmo/web-dashboard/inject_xiaoguo_insight.py | 保留 | 仍需要注入情感到market.json |
|
||
|
||
## 关联修改
|
||
|
||
1. market_insight.py 停用(cron 改为新脚本)
|
||
2. 新 cron job:市场精选推荐(LLM,16:00)
|
||
3. 小果筛选 cron:market_screener.py(no_agent,每60分)
|