3.2 KiB
3.2 KiB
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):
# 分类先于去重
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 的执行清单
- 回复侧 - 跑完信号后,只回一行核心状态,不写分析/对比/建议
- QQ 推送侧 - 用 push_to_qq 推完整数据(品种/方向/张数/avgPx/upl/保证金/可用/强平/异常)
- close 信号 - 永远走独立通道,不被2分钟窗口去重影响
- 检测到 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 (同次会话上半场发现的标题矛盾)