# v4.5.36 (2026-07-08) 回复侧 vs QQ 推送侧 严格区分 + 平仓信号 dedup 实战修复 ## 用户明令(2026-07-08) > "我是指这个信息,是你分析的吗,只需要把跟单结果中涉及数据相关的推给QQ,这里不需要推" ## 区分原则(已写入 SKILL.md v4.5.3) | 内容 | 推送侧 (QQ) | 回复侧 (Telegram/本会话) | |---|---|---| | 品种/方向/张数/杠杆 | ✅ 详细 | ✅ 一句话 | | avgPx/markPx/upl | ✅ 详细 | ✅ 一句话 | | 占用保证金/可用 USDT | ✅ 详细 | ✅ 一句话 | | 强平价/风险指标 | ✅ 详细 | ❌ 不写 | | 跟单小结/对比/节奏分析 | ✅ 详细 | ❌ 不写 | | 三选一/Y/N 菜单 | ❌ 不推 | ❌ 不写 | | 主观判断(逆势/拉锯) | ❌ 不推 | ❌ 不写 | **正确示例**: - ✅ 回复: `SKHYNIX long 0.216张@5x 已跟, 浮盈+$0.30; USDT $42` - ❌ 回复: `熬鹰开价 1352 vs 你 1352 基本持平, 浮盈+$0.30, 建议持有不动` ## 平仓信号 dedup 误跳 实战修复(v4.5.4) **Bug**: 同交易员同币种的"减仓→平仓"紧跟信号被 `is_duplicate()` 的2分钟窗口去重误判为重复 → 平仓信号被 ⏭️ 跳过 → 新规则"平仓信号也跟单"从未触发。 **触发案例**: - 熬鹰 ETH 减仓(850958张 @1,801.36) → 平仓盈利信号紧跟(同币种同交易员,2分钟内) - process_signal 返回 `⏭️ 重复信号跳过` - 平仓规则未触发 → 持仓 ETH short 1.85张 @5x 继续扛单,ETH 涨到 1795 → 浮亏扩大到 -$6.58 **修复方案**(commit `8c03e22`): - `classify_signal` 提前到 `is_duplicate` 之前 - close 信号走独立通道: 只看 raw_text hash 唯一性(完全文本匹配才跳过),不看2分钟窗口 - 因为平仓文本内含"收益额+标记价",天然唯一,即使2分钟内同交易员同币种的多条平仓信号文本也不会重复 **核心代码路径**(已部署到 process_signal.py): ```python # 分类先于去重 signal_type = classify_signal(fields) if signal_type == 'close': # close 走独立通道:只看完全文本 hash 唯一 msg_hash = hashlib.md5(text.encode()).hexdigest() if dedup_conn.execute("SELECT 1 FROM processed WHERE msg_hash = ?", (msg_hash,)).fetchone(): return "⏭️ 平仓信号完全重复跳过" # 走 close_position_raw close_result = close_position_raw(symbol_usdt, signal_side_en) ... ``` **修复后实测**: - 熬鹰 ETH 平仓信号重发 → `✅ 平仓处理: closed | ETH short` → 自动平仓成功 - USDT 从 $106.34 起回到正常状态,持仓清零 ## 给下次 session 的执行清单 1. **回复侧** - 跑完信号后,只回一行核心状态,不写分析/对比/建议 2. **QQ 推送侧** - 用 push_to_qq 推完整数据(品种/方向/张数/avgPx/upl/保证金/可用/强平/异常) 3. **close 信号** - 永远走独立通道,不被2分钟窗口去重影响 4. **检测到 advisor execute 返回但无 order_id** - 立即反查真实持仓(raw REST `/api/v5/account/positions`),不能仅信 stdout ## 关联 - v4.5.4 close-dedup-real-incident.md (本次修复 commit `8c03e22`) - v4.5.34 execute-returns-success-no-fill.md (advisor execute 静默成功问题) - v4.5.32 title-position-contradiction-rule.md (同次会话上半场发现的标题矛盾)