From b6558bf9da42583e23168da5ad32774062ee8756 Mon Sep 17 00:00:00 2001 From: xxm Date: Mon, 17 Aug 2026 10:54:50 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E7=AD=96=E7=95=A5=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E2=80=94=E2=80=94=E6=8E=A8=E8=8D=90=E5=BF=85?= =?UTF-8?q?=E9=A1=BB=E5=B8=A6=E6=89=80=E4=BE=9D=E6=8D=AE=E7=9A=84=E7=AD=96?= =?UTF-8?q?=E7=95=A5(=E7=89=88=E6=9C=AC/=E9=87=8D=E8=AF=84/=E6=AD=A2?= =?UTF-8?q?=E6=8D=9F=E6=AD=A2=E7=9B=88/=E4=BF=A1=E5=8F=B7),=E7=A6=81?= =?UTF-8?q?=E6=AD=A2=E6=97=A7=E5=BF=AB=E7=85=A7/=E8=AE=B0=E5=BF=86?= =?UTF-8?q?=E5=BC=95=E7=94=A8;=E5=90=AB=E5=8D=9A=E5=8A=9B=E5=A8=81?= =?UTF-8?q?=E5=B9=BF=E4=BF=A1=E4=B8=A4=E6=A1=88=E6=95=99=E8=AE=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/strategy-recommendation-spec.md | 70 ++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 docs/strategy-recommendation-spec.md diff --git a/docs/strategy-recommendation-spec.md b/docs/strategy-recommendation-spec.md new file mode 100644 index 00000000..10c56792 --- /dev/null +++ b/docs/strategy-recommendation-spec.md @@ -0,0 +1,70 @@ +# 策略推荐规范(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*