# 全市场潜力股挖掘系统设计 ## 目标 打破持仓和自选的局限,从全 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分)