2.1 KiB
2.1 KiB
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 手动跟减同比例:
# 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)
结果验证清单 (每轮信号后)
- check_account 查实际张数 ≠ 信号前张数 → 真执行了
- 张数没变但 process_signal 报成功 → 隐性失败, 手动 raw REST 补
- 手动操作后 → release_lock / acquire_lock 对应处理
- 权益对比: eq_now - eq_before ≈ 本轮盈亏 (含手续费)