aa0f740381
完整数据采集+分析管道: - market_watch.py:90行业板块采集(同花顺/东方财富) - 市场精选推荐 cron:全市场分析+候选池+星级推荐 - price_monitor.py:持仓/自选高频价格监控 - refresh_mtf_cache.py:多周期K线缓存 - 策略评估/知识萃取管道 文档:docs/ 含完整需求+架构设计 注意:尚未配置 git remote,笑笑接手后自行配置
6.3 KiB
6.3 KiB
全市场潜力股挖掘系统设计
目标
打破持仓和自选的局限,从全 A 股市场挖掘新投资标的,附带入场策略和动态星级评分。
整体架构(两层式)
市场数据(market.json)
│ 每30分更新
▼
┌──────────────────────────────────────┐
│ 第一层:小果本地LLM · 高频低耗 │
│ │
│ 每轮1-2个板块,积少成多覆盖全市场 │
│ → 分析板块趋势 │
│ → 筛选成分股 │
│ → 给出初步评分+策略 │
│ → 写入候选池(candidate_pool.json) │
└──────────────────┬───────────────────┘
│
▼
┌──────────────────────────────────────┐
│ 第二层:知微(主模型)· 低频高质 │
│ │
│ 每日收盘后 │
│ → 读候选池 │
│ → 用技术分析+策略引擎验证 │
│ → 确认星级(5/4.5/4/3.5/3) │
│ → 输出最终推荐+推送 │
│ → 已推荐的标记 promoted │
└──────────────────────────────────────┘
候选池设计
candidate_pool.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 节奏,间隔一次执行)
每轮流程:
- 读 market.json → 取行业板块涨幅排名
- 选择本轮分析的板块:
- 优先级:涨幅前 10 中「累计分析次数最少」的板块
- 确保一周内覆盖所有活跃板块
- 每轮分析 2 个板块
- 对每个板块:
a.
ak.stock_board_industry_cons_ths()→ 取成分股 b. 基础过滤:涨幅 > 0、价格 3100 元、有成交量 c. 取前 58 只候选 d. 调小果 LLM API 分析 → 返回评分+策略 - 更新 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(收盘后)
流程:
- 读 candidate_pool.json → 取未 reviewed 且评分 >= 7 的候选
- 对每个候选用我的技术分析工具验证
- 综合打分 → 星级(5/4.5/4/3.5/3)
- 输出最终 2-3 只推荐(含完整策略)
- 写入 market.json 的 potential_stocks 字段
- 标记 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 |
关联修改
- market_insight.py 停用(cron 改为新脚本)
- 新 cron job:市场精选推荐(LLM,16:00)
- 小果筛选 cron:market_screener.py(no_agent,每60分)