# v4.5.84 (2026-09-10) CL 全周期实战: reduce 信号同样隐性失败 + 手动比例减仓 ## 背景 熬鹰币安实盘 CL 空单全周期跟单 (2026-09-10): 开仓 152 张 → 减仓信号 → 平仓信号。期间发现 **reduce 信号与 open 信号一样存在隐性失败**。 ## 新教训: reduce 信号也会静默不执行 **现场**: 熬鹰减仓 50% (9127→4563 CL)。process_signal 跑完返回 "✅ 已推送 | CL short 10x | 21.0张 | 评级:高" — 但 check_account 验证持仓**仍为 152 张**,一股未减。 **关键点**: advisor 返回了建议张数 (21 张) 且推送显示成功,与 v4.5.82 记录的 open 隐性失败同款 — **execute 路径与 advisor 建议值独立,推送成功 ≠ 订单落地**。此前只确认 open 会隐性失败,本次实证 reduce 同样会。 **铁律**: 任何信号类型 (open/add/reduce/close) 处理完,必须 check_account 验证张数变化,不能信 process_signal 的返回值。 ## 正确解法: 手动按比例 raw REST 减仓 熬鹰减 50% (9127→4563),agent 手动跟减同比例: ```python # 152 张 × 50% = 76 张, buy 回补 reduceOnly body = {"instId": "CL-USDT-SWAP", "tdMode": "cross", "side": "buy", "posSide": "net", "ordType": "market", "sz": "76", "reduceOnly": True} okx_post('/api/v5/trade/order', body) ``` **比例优先, 绝对张数仅参考**: advisor 报 21 张 (它按自己的仓位公式算的), 但 v4.5.83 规则是"减仓按 trader 比例跟减" — 152×50%=76 才是正解, 不是 21。 ## 平仓 + 解锁收尾 - 平仓信号 proxy 抽风 → sleep 后手动 raw REST 全平 (buy reduceOnly 76 张) - **手动平仓后必须 release_lock** (v4.5.82 规则) — 本次 `release_lock("CL", "熬鹰币安实盘")` ✅ - CL 全周期净盈利约 +$16 (开仓浮盈 $8 + 减半已实现 $8) ## 结果验证清单 (每轮信号后) 1. check_account 查实际张数 ≠ 信号前张数 → 真执行了 2. 张数没变但 process_signal 报成功 → 隐性失败, 手动 raw REST 补 3. 手动操作后 → release_lock / acquire_lock 对应处理 4. 权益对比: eq_now - eq_before ≈ 本轮盈亏 (含手续费)