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_trace和completeness,标记数据来源与完整度。 - 提供手动触发 API、日期列表 API、详情 API、趋势 API。
- LLM 只生成
analysis、next_day_watch、risk_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