# v4.5.58 (2026-08-21) 减仓≠平仓判断表 + "无持仓静默"实为 trader-locked + 矿工Jasonleo 20+ reduce 信号洪流处理 **会话时段**: 2026-08-20 ~ 2026-08-21 (Telegram) **触发场景**: 熬鹰资本 BTC 平仓 → SKHYNIX 短/多反转 → SKHYNIX 平仓 → BTC 新开仓 → 矿工Jasonleo 接入 + 20+ BTC/ETH short reduce 信号连发 --- ## 🎯 三件新事件 ### Bug 1: 减仓信号 vs 平仓信号 判断表(此前未显式列出) **症状**: 矿工Jasonleo BTC short 从 2236.384 → 1916.759 → 1500.759 → 947.916 → 500.985 一路砍,agent 每条都报告"无BTC持仓; HYPE long 26张@2x 仍持仓"—— 因为这是 *reduce*,不是 *close*,user 不需要做任何事,但 agent 没有把"reduce 信号 = 不操作"明确化,只说"无BTC持仓"。 **判断表 (硬规则,reduce 信号判定后只推 QQ 不 push reply 详情)**: | 信号类型 | 字段值 | 是否开新仓 | 是否平当前仓 | agent 回复侧 | |---|---|---|---|---| | **新开仓** | `新开仓` | ✅ | ❌ | 一行已跟单 + 浮盈/亏 | | **加仓** | `加仓了` + 仓位数字**递增** | ❌ (同方向加) | ❌ | "无操作; 你当前持仓 X 张" | | **减仓** | `减仓了` + 仓位数字**递减**(但>0) | ❌ | ❌ (只是减仓) | "无操作; 你当前持仓 X 张" | | **平仓** | `平仓提醒` + 仓位数字=0 | ❌ | ✅ | "已跟平 X 张 (盈亏 $Y)" | | **调杠杆** | `修改了杠杆 X→Y` | ❌ | ❌ | "无操作; 你当前持仓 X 张" | | **实时更新** | `📊 仓位实时更新` | ❌ | ❌ | "无操作" (一行) | **关键**: reduce(减仓)≠ 平仓!agent 必须用仓位数字是 0 还是 >0 区分,而不是看到"减仓了"就以为要平。 **实战**: 矿工Jasonleo 一次发 20+ 条 BTC short 减仓信号 → 每次仓位数字递减但都是 >0 → 全部不触发平仓动作。agent 回复只需一行"减仓信号 (你无BTC持仓,无需操作)"。 --- ### Bug 2: "无持仓静默" 实为 trader-locked,不是真无持仓 **症状**: 熬鹰资本 BTC 平仓信号进来 → process_signal 输出: ``` ⏭️ 平仓信号无持仓静默 | BTC long ``` → agent 报告"无BTC持仓"。**但实际上** 是因为 BTC 被 *予与实盘* 在 `position_locks` 里锁住,熬鹰的 close 信号被 lock 拒绝,根本没检查实际持仓。 **根因**: process_signal 的"无持仓静默"提示**混淆了三种情况**: 1. 真的没持仓 (信号被 dedup/锁 拒,持仓=0) 2. 持仓存在,但信号被 trader-lock 拒(同一币种被另一个 trader 锁) 3. SSL/proxy 抽风查不到 (v4.5.54 已识别) agent 看到"无持仓静默" 不能直接报告"无持仓"——必须先查 `position_locks` 确认 trader。 **修复方向**: - [ ] process_signal 输出 `🔒 {symbol} 被 {other_trader} 锁 (冲突 trader: X)`,而不是笼统"无持仓静默" - [ ] agent 看到"无持仓静默" → 必须跑 check_account.py + 查 signal_history.db::position_locks - [ ] 默认假设 = 你有持仓但被另一个 trader 锁了,不是没持仓 **实战 (本次 session)**: 熬鹰 BTC 平仓信号 → "无持仓静默" → agent 报"无BTC持仓"。实际 BTC short 1.47 张 @10x 早被 *予与实盘* 在 8/15 execute 了,熬鹰这个 trader 在 72h lock 之外,无法平你已有的 BTC short。 --- ### Bug 3: 矿工Jasonleo 20+ 减仓信号连发处理模板 **症状**: 矿工Jasonleo 8/20 连发 20+ 条 BTC/ETH short 减仓信号,每条都是仓位数字递减但 >0。本质是**展示性**信号 (他在向你展示他正在减仓),**不触发任何交易动作**。 **agent 回复模板 (批量 reduce 信号)**: ``` ⏭️ 减仓信号 N 条连发已处理 (你无 BTC/ETH 持仓,无需操作) 📊 熬鹰资本 BTC/ETH 仓位变化 (仅展示): BTC short 2236 → 1916 → 1500 → 947 → 500 张 (持续减仓) ETH short 28316 → 24862 → 20954 → 12582 → 8556 → 4632 → 0 张 (已平) ``` 或者更简单: ``` 矿工 Jasonleo BTC/ETH 减仓信号 ×N (你无此币种持仓,无需操作) ``` **禁止**: - ❌ 每条 reduce 都单独回复"你无BTC持仓" - ❌ 把 reduce 信号当成"需要平仓"的提示 - ❌ 把 reduce 信号解读为"快爆仓了/该止损" **实战**: 本次 session 矿工发了 22 条 BTC/ETH reduce,agent 回复每条都说"无BTC持仓; HYPE long 26张@2x 仍持仓"——过度冗余,违反 v4.5.36 回复侧简明原则。 --- ## 🔧 部署清单 (下次必修) - [ ] process_signal 输出**细化** silent skip 原因:`trader_locked_by_X` vs `no_position` vs `ssl_failed` - [ ] agent 看到"无持仓静默" → 必须查 position_locks 区分情况,默认假设 trader-locked - [ ] reduce 信号判定逻辑加到 parse_signal 输出: `signal_subtype ∈ {new, add, reduce, close, leverage_change, position_update}` - [ ] 矿工Jasonleo 加入已知 trader 名单 (signal_tracker.py + signal-source-drift.md 更新) - [ ] batch-reduce 回复模板: 连发 N 条同类 reduce → 单条群发式回复,不逐条 - [ ] add new reference: `reduce-vs-close-judgment-table.md` (本文件第1节) --- ## 📊 本次 session 实战数据 | 时刻 | 事件 | 净 USDT | |---|---|---| | 起始 | MU short 0.2张 浮盈 | $95.52 | | 8/20 SKHYNIX short 0.158张 execute (信号源未知但绕过闸) | +$0.13 | $95.65 | | 8/20 SKHYNIX 平仓 (ghost close,锁盈+$0.13) | flat | $95.65 → $112.87 | | 8/20 SNDK short 0.107张 (信号源未知但绕过闸) | +$0.22 | $112.87 | | 8/20 SNDK 平仓 (ghost close,锁盈+$0.22) | flat | $112.87 → $109.67 | | 8/20 SKHYNIX short 0.145张 (信号源未知) | +$1.10 | $109.67 | | 8/20 SKHYNIX 平仓 (锁盈+$1.10) | flat | $109.67 → $110.71 | | 8/21 BTC long 0.63张 @5x execute | -$0.01 → +$17.50 (67,860平) | $110.71 → $127.16 | | 8/21 HYPE long 26张 @2x (信号源未知,绕过闸第3次) | -$0.41 | $127.16 | | 终止 | HYPE long 26张 @2x 持仓浮亏-$0.41 | $126.66 | **关键盈利**: BTC long 0.63张 在 65,365 开 → 67,860 平 = +$17.50 (跟对熬鹰加仓节奏)。 **关键观察**: - "信号源未知" 闸仍被绕过 3 次 (SKHYNIX short / BTC long / HYPE long) — v4.5.53 闸无效,需移到 parse_signal 第一行 - 平仓 ghost close 持续发生 (SNDK 0.107张 / SKHYNIX 0.145张 / SKHYNIX 0.158张 全部平仓未入 confirmed_signals) - 矿工Jasonleo 接入,BTC/ETH short 4-6x reduce 信号展示性 --- ## 📌 关联 references - `v4.5.54-signal-source-unknown-still-executes-and-ghost-close-2026-08-20.md` — 闸绕过 + ghost close 本次再次验证 - `v4.5.56-position-source-trace-and-kuangj-trader-2026-08-20.md` — 持仓来源 trace 三步 - `v4.5.57-hype-and-multi-signal-source-storm-2026-08-20.md` — HYPE ghost execute + 矿工Jasonleo 接入 - `signal-source-drift-2026-07-15.md` — 旧 trader 名单失效警告(本次再次触发:旧名单只到 8/20) --- ## ✅ 验证清单 - [x] trader='未知' 闸**仍被绕过** (3 次实战: SKHYNIX short 0.145 / BTC long 0.63 / HYPE long 26) - [x] 平仓 ghost close **仍在发生** (SNDK / SKHYNIX 短 / SKHYNIX 长 各一次) - [x] "无持仓静默" 被 agent 误读为"无持仓" (BTC short 1.47张实为予与锁) - [x] 减仓≠平仓 判断表 **新增** (本次明确化) - [x] 矿工Jasonleo 接入 + 20+ reduce 连发 → agent 过度详细回复 (违反 v4.5.36)