Files
MoFin/docs/market-screening-system-design.md
T
知微 (MoFin) aa0f740381 MoFin 初始提交
完整数据采集+分析管道:
- market_watch.py:90行业板块采集(同花顺/东方财富)
- 市场精选推荐 cron:全市场分析+候选池+星级推荐
- price_monitor.py:持仓/自选高频价格监控
- refresh_mtf_cache.py:多周期K线缓存
- 策略评估/知识萃取管道

文档:docs/ 含完整需求+架构设计
注意:尚未配置 git remote,笑笑接手后自行配置
2026-06-20 12:04:21 +08:00

6.3 KiB
Raw Blame History

全市场潜力股挖掘系统设计

目标

打破持仓和自选的局限,从全 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 节奏,间隔一次执行)

每轮流程:

  1. 读 market.json → 取行业板块涨幅排名
  2. 选择本轮分析的板块:
    • 优先级:涨幅前 10 中「累计分析次数最少」的板块
    • 确保一周内覆盖所有活跃板块
    • 每轮分析 2 个板块
  3. 对每个板块: a. ak.stock_board_industry_cons_ths() → 取成分股 b. 基础过滤:涨幅 > 0、价格 3100 元、有成交量 c. 取前 58 只候选 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:市场精选推荐(LLM16:00
  3. 小果筛选 cronmarket_screener.pyno_agent,每60分)