7.0 KiB
7.0 KiB
v4.5.66 (2026-08-26 末段) 去掉"性价比低"判断 + proxy 必要性确认 + TRUMP 调杠杆恢复 USDC 空闲
会话: 8 月 26 日熬鹰资本 TRUMP/MSTR 全周期(同 v4.5.65 同一 session 的后半段)
一、去掉"性价比低"判断 — 用户偏好反转
用户原话: "把性价比去掉,不要了。" (针对 SKHYNIX 新开仓信号报"性价比低"被跳过)
修复 (scripts/process_signal.py::process_signal() open/add/reduce execute 前):
# 旧 (v4.5.21~v4.5.62): "性价比低" 静默跳过 + 推 skipped_low_rating
# 新 (v4.5.66): 去掉这个判断, contracts > 0 就 execute
contracts = rec.get('contracts', 0)
auto_execute = contracts > 0 # 性价比低也不再跳过 (用户要求 2026-08-26)
新行为:
- advisor 报
0.065 张性价比低→ 不再跳过, execute 真实下单 (实测 0.098 张) - advisor 报
0.01 张性价比低→ 不再跳过, 但set_leverage失败时还是跳过 (cross margin 0.01 张保证金 < 1 USDT) - 用户原话: "把性价比去掉,不要了" → 这是用户对 advisor 报"低"的明确反弹
与 v4.5.21~v4.5.62 的关系:
- v4.5.21 加的"性价比低"判断是 v4.5.37 之前"小币种 silent execute"的兜底
- 现在小币种 silent execute 已通过
silent_order标识 (v4.5.65) → 不再需要"性价比低"做兜底 - 用户的实际偏好:跟单就要跟, advisor 怎么说无所谓
部署清单:
process_signal.py去掉is_low_rating判断okx_position_advisor.py去掉"性价比低"字段生成 (待清理, 不阻塞)format_execution_result检查"性价比低"残留引用
二、proxy 必要性 — 公开 API 可直连, 私有 API 必须 proxy
用户原话: "这个需要走代理吗?不用吧" (针对 OKX raw REST 调用)
会话内验证:
# 公开 API (行情/时间) - 可以直连, 不需要 proxy
curl -sS https://www.okx.com/api/v5/public/time
# → {"code":"0","data":[{"ts":"1787987273250"}],"msg":""}
# 私有 API (下单/查持仓/查余额) - 必须走 proxy 127.0.0.1:7890
# 原因: OKX 账户的 API key 绑定到特定 IP, 国内/非绑定 IP 直连会拒绝
硬规则 (v4.5.66 新增):
- 公开 API (
/api/v5/public/*,/api/v5/market/*): 直连 OKX, 不需要 proxy - 私有 API (
/api/v5/account/*,/api/v5/trade/*,/api/v5/position/*): 必须走 proxy 127.0.0.1:7890 (clash/mihomo) - 跨工具统一:
check_account.py/manual_order.py/process_signal.py/signal_tracker.py的_okx_raw_request全部走 proxy
proxy 抽风模式:
_okx_raw_request返回None(SSL EOF / connection reset)- vs 返回
dict但code != '0' - 前者是proxy 不通 (整体重试 30s), 后者是业务报错 (不必重试)
部署清单:
check_account.py加if positions == [] and availBal == 0: warning = "ssl_maybe_failed", 自动 30s 后 retrymanual_order.py私有 API 调用必须proxies={'http':'http://127.0.0.1:7890','https':'http://127.0.0.1:7890'}process_signal.py主流程区分"proxy 抽风" vs "业务报错", 给用户不同提示
三、TRUMP 1x → 2x 调杠杆恢复 USDC 空闲 实战
会话内事件时间线:
- 熬鹰 TRUMP long 1x 新开仓 → advisor 报 137 张 → execute 实际 586 张@1x (幽灵 execute, 跟 v4.5.62 HYPE 同源)
- USDT 可用从 $156 → $2.13 (几乎全占, 9成9仓位)
- 熬鹰 TRUMP 调杠杆 1→2x 信号 → v4.5.64 修复后自动跟 → TRUMP 586张@2x
- USDT 可用从 $2.13 → $81.25 (杠杆升, 保证金降, 空闲恢复)
关键洞察:
- 1x 全仓: 名义价值 = USDT 占用 (≈ 杠杆 1x)
- 2x 全仓: 名义价值 = 2 × USDT 占用 (杠杆升, USDT 占用减半)
- 调杠杆本身不加仓, 只调整"实际占用保证金", 所以 USDT 空闲恢复
- 用户的"只留 X 成余额"指令, 调杠杆是隐式生效的另一条路径
实战模板 (从 1x 调到 2x 释放 USDC):
# 检查现有 1x 持仓
python3 check_account.py TRUMP-USDT-SWAP
# → 586 张@1x, USDT 占用 $155.82
# 调杠杆 (自动跟 OR 手动)
python3 process_signal.py "调杠杆 1→2x 信号"
# → TRUMP 586张@2x, USDT 占用 $79.14, USDT 可用 $81.25
SOP: 用户仓位接近满 (USDT 可用 < 10%) → 先查 advisor 是否在调杠杆信号, 优先跟调杠杆 而不是手动平仓
四、MSTR manual_order 4.01张@5x + 手动加锁 实战细节
会话内事件:
- 熬鹰 MSTR 1x 新开仓 → advisor 报"性价比低" → (本 session 后段已去掉判断)
- 用户主动要跟单, 手动 raw REST 下单 1 张 → 0.01 张 → 加 3 张 → 共 4.01 张@5x
- 用户说 "用 8 成来开" → "不是,是只留 2 成的余额" → "那只留 3 层呢"
- 我第一反应理解错, 留余额 vs 占仓位 是两件事
用户行为模式 (v4.5.66 强化):
- "X 成来开" = 占 X 成仓位 (留 1-X 成余额)
- "留 X 成余额" = 留 X 成余额, 占用 1-X 成仓位
- 用户说"留 2 成余额" = 我应该占用 80% 仓位
- 用户说"只留 3 层" = 留 3 成余额 = 占 7 成仓位
- 永远要 clarify: 用户说 "X" 是 "留" 还是 "占"
manual_order 模板 (/tmp/lock_<X>.py 已沉淀到 v4.5.63):
cat > /tmp/lock_mstr.py << 'PYEOF'
import sys
sys.path.insert(0, '/home/openclaw/.hermes/skills/trading/okx-auto-position/scripts')
from signal_tracker import acquire_lock
ok, msg = acquire_lock("MSTR", "熬鹰资本", "short", reason="手动加锁", auto=False)
print(f"ok={ok}, msg={msg}")
PYEOF
python3 /tmp/lock_mstr.py
关键陷阱 (v4.5.63 已记):
acquire_lock的 symbol 必须无后缀 ("MSTR" 不是 "MSTR-USDT-SWAP")- 验证:
sqlite3 ~/.hermes/trading/signal_history.db "SELECT * FROM position_locks;"应只见无后缀 symbol
五、本次 session 净状态 (与 v4.5.65 续)
持仓变化:
- TRUMP long 586张@1x → 调 2x → 586张@2x (v4.5.64 自动跟)
- SKHYNIX long 0.098张@1x (去掉"性价比低"后 execute 成功)
- MSTR short 4.01张@5x (手动加仓)
USDT 变化:
- TRUMP 调杠杆前: $157.95 (可用 $2.13)
- TRUMP 调杠杆后: $160.39 (可用 $81.25)
- 累计净增: +$0.88 (TRUMP 调杠杆盈利)
锁表新增:
- MSTR | 熬鹰资本 | short
- TRUMP | 熬鹰资本 | long
- SKHYNIX | 熬鹰资本 | long
部署清单 (下次 session 第一件事)
- 去掉"性价比低"判断, 跟所有熬鹰信号
okx_position_advisor.py清理"性价比低"字段 (可选)_okx_raw_request加 proxy 抽风检测 (None自动 retry)manual_order.py检查 body=body keyword arg (v4.5.65 已记)- "X 成来开" / "留 X 成余额" clarify 模板入 reference
- 调杠杆后 USDT 空闲恢复机制 (SOP) 入 reference
关联版本
v4.5.21 加"性价比低"判断 (兜底)
↓
v4.5.37 ~ v4.5.62 沿用 + silent_order 标识
↓
v4.5.65 silent_order 完整化, "性价比低"还有兜底作用
↓
v4.5.66 去掉"性价比低"判断, 跟所有熬鹰信号 (用户偏好反转)
每次踩坑都在 OKX 跟单这条线上, 跟其他 skill 不重叠。