67 lines
3.2 KiB
Markdown
67 lines
3.2 KiB
Markdown
# 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 (同次会话上半场发现的标题矛盾) |