Files
MoFin/docs/strategy-recommendation-spec.md
T

3.4 KiB
Raw Blame History

策略推荐规范(2026-08-17 老莫定稿)

目的:所有推送给老爸的操作建议,必须带上所依据的策略,并根据策略描述推荐理由。 不可追溯的推荐一律不采信(教训:广信股份/博力威 2026-08-17 两起)。


一、为什么必须有依据(教训)

案例1:博力威(688345) 2026-08-17 10:36

  • 知微推"建仓1手,止损56.02/止盈65.65/RR=2.72"——但这是 strategy_history 的旧重评快照
  • 实际当前策略(holding_strategies):信号=信号不充分、止损55.78、止盈65.54、买入区56.99~59.31、操作=空仓关注
  • 三处硬伤:①过期数据 ②RR算错(按现价57.88实际是4.18不是2.72)③与"信号不充分"直接矛盾
  • 结论:不采信

案例2:广信股份(603599) 2026-08-17 10:25

  • 知微说"跌破9.88清仓"——9.88是买入区下沿,不是止损(止损是9.8
  • 且是引用08:35重评结论,未注明依据来源
  • 结论:不采信

二、规则(推荐必须遵守)

1. 每条推荐必须引用当前策略快照

推送操作建议时,必须包含:

  • 策略版本(如 version=1
  • 重评时间reassessed_at / updated_at
  • 当前信号timing_signal:买入/卖出/持有/信号不充分)
  • 止损/止盈/买入区(精确数值,不凭记忆)
  • 操作建议原文action

数据源:holding_strategies 表当前 active 记录(SSOT)。 禁止从 strategy_history 旧快照或 LLM 记忆引用。

2. 信号不充分 = 不给操作建议

  • "信号不充分/观望/等信号/暂不买入" → 不是操作,不推送
  • 候选股(非持仓)利好/利空新闻 → 不推送(除非有明确"建议买入"信号)

3. 触发新重评再推

持仓股触发操作区间(破止损/进止盈区/基本面重大变化)→ 先触发盘中重评(reassess_with_context)→ 重评结论维持 → 才按新重评推送。 不触发重评就直接推旧结论 = 假警报。

4. 逻辑自洽(普世真理)

  • 重评结论"持有" → 止损放结构支撑下方,不紧贴现价(避免正常回调触发)
  • 重评结论"卖出/止盈" → 止损可紧贴(执行风控)
  • 推送的操作建议必须与引用策略的信号一致,不得矛盾

三、系统实现(2026-08-17 已落地)

组件 改动
pool_news_collector.py 采集输出附当前策略快照(每只池子股票:版本/重评/止损/止盈/信号/操作),知微执行时可见真实策略
price_monitor.py 破止损推送:重评后带完整操作原因 + 逻辑自洽(重评持有则不推卖出,止损更新到重评值)
cron pool_news_collector_30min prompt 写入推送门槛:实质操作才推、候选股不推、信号不充分不推、持仓股精确引用止损/止盈

四、知微执行指引

执行池子新闻/个股新闻 cron 时:

  1. 先读 Script Output 中的**【当前策略快照】**段
  2. 只对"信号=买入/卖出/持有且触发操作区"的股票给操作建议
  3. 推送格式:
    ⚠️/✅ 名称(代码) 现价X | 依据策略: version=N(重评时间) | 信号=X
    止损S 止盈T 买入区L~H | RR=X.X | 操作: [引用action原文]
    
  4. 信号不充分/观望 → [SILENT] 或只报健康度,不列个股

文档位置:docs/strategy-recommendation-spec.md | 2026-08-17