feat: 设计收盘后 A 股情绪复盘能力

Author: ZhuLinsenCreated Jul 5, 2026Updated Jul 5, 2026
Labelsenhancementdata-sourcefeat

功能描述 / Feature Description

希望后续设计一个独立的 A 股收盘后情绪复盘能力,用规则化指标补充现有大盘复盘,帮助用户在收盘后观察市场短线情绪、涨停生态和历史变化。

该 issue 主要用于记录方向和可参考设计点,不代表 PR #1846 可以直接合入。PR #1846 中有部分思路值得后续重做时参考,但当前实现范围和工程质量不适合进入主线。

使用场景 / Use Case

  • 收盘后查看 A 股市场情绪状态,而不只看指数涨跌。
  • 观察涨跌家数差、涨停数量、炸板率、最高板、连板晋级率等短线情绪指标。
  • 跟踪昨日涨停股票在次日竞价和收盘阶段的反馈。
  • 对比 10/30/60 个交易日趋势,判断情绪修复、退潮、高潮或冰点。
  • 将规则指标和 LLM 文字总结分离,避免模型改写或补造数值。

期望实现 / Proposed Solution

建议先按较小范围重做,第一阶段只覆盖 A 股:

  • 新增后端规则计算服务,指标由确定性公式计算。
  • 每日按 (market, trade_date) 保存一份幂等快照。
  • 保存数据质量状态,例如 complete / partial / imported
  • 保存 provider_tracecompleteness,标记数据来源与完整度。
  • 提供手动触发 API、日期列表 API、详情 API、趋势 API。
  • LLM 只生成 analysisnext_day_watchrisk_notes 等叙述字段,不能修改规则指标。
  • 历史趋势计算必须只使用目标交易日之前的数据,避免未来函数。
  • 数据源失败时保存 partial 或返回清晰错误,不拖垮主分析流程。
  • 受控历史导入可以作为可选工具,但需要 schema 校验、dry-run 和导入摘要。

可参考的指标包括:

  • 涨跌家数差。
  • 全市场成交额与前一交易日变化。
  • 涨停家数、炸板家数、炸板率、最高板、连板梯队。
  • 2 板、3 板、4 板及以上晋级率。
  • 昨日涨停竞价收益、收盘收益、红盘率、样本数。
  • 题材/行业强度。
  • 基于历史样本的情绪状态或分位。

备选方案 / Alternatives Considered

  • 直接扩展现有大盘复盘:优点是入口集中;缺点是短线情绪指标和历史快照语义较独立,容易让大盘复盘继续膨胀。
  • 直接合入 PR #1846:不建议。该 PR 是 draft,包含个人开发日志和本地环境信息,默认开启自动任务,历史窗口可能引入未来数据,Tushare fallback 口径也需要重新验证。
  • 只依赖 LLM 总结:不建议。情绪复盘应以可复现规则指标为主,LLM 只能解释指标。

相关信息 / Additional Context

  • 是否愿意贡献代码实现 / Willing to implement: Yes, after scope is confirmed.
  • 参考 PR:#1846。
  • 本地分析记录:.claude/reviews/prs/pr-1846.md

后续实现注意事项:

  • 新配置默认不应改变现有用户运行行为,尤其不要默认增加耗时数据抓取或 LLM 调用。
  • 若接入定时任务,建议放到第二阶段,并复用现有任务/轮询机制。
  • Web 页面需要完整中英文 i18n、loading/error/empty 状态和截图或替代视觉证据。
  • 用户可见变更需要同步文档和 docs/CHANGELOG.md
  • AkShare / Tushare 的历史数据口径需要单独验证并记录 provider trace。

Source: ZhuLinsen/daily_stock_analysis