Files
Hermes-Skills/okx-auto-position/references/2026-07-21-forced-okx-trade-script-entry.md
T
mike 98efe09387 lottery-hk: v1.2.6 — 特码脚本改中文文件名 lottery_特码.py
User 2026-07-30 反馈:
- 脚本名 lottery_te_ma.py → lottery_特码.py (中文, 更直观)
- 同步 SKILL.md 引用 (description + scripts 段)
- version 1.2.5 → 1.2.6
2026-07-30 20:43:39 +08:00

3.8 KiB

okx_trade.sh — 所有 OKX 下单的强制入口 (2026-07-21)

用户原话 (2026-07-21): "你查查TG有个跟单信号,有个错误" → 反复触发 ETH/BTC/MU 错单 / 乱下单 / 用裸 ccxt 不走 skill / leverage 丢失 / 9 档拒单

用户规则: "所有下单走 skill 强制入口"

设计

~/.hermes/scripts/okx_trade.sh 单一入口,所有 OKX 下单都走这里。绝不直接调 ccxt。

用法

bash ~/.hermes/scripts/okx_trade.sh status        # 查持仓 + 余额
bash ~/.hermes/scripts/okx_trade.sh open <SYMBOL> <SIDE> <LEVERAGE>   # advisor 算 + --execute
bash ~/.hermes/scripts/okx_trade.sh close <SYMBOL>                    # 平仓(走 advisor --close)
bash ~/.hermes/scripts/okx_trade.sh manual <SYMBOL> <SIDE> <QTY>      # 手动 raw REST(异常 fallback)
bash ~/.hermes/scripts/okx_trade.sh advisor <SYMBOL> <SIDE> <LEVERAGE>  # 只 advisor 算,不 execute

强制做的事

  1. 走 skill 路径 — 调 okx_position_advisor.pyrecommend_position + execute_trade,直接 ccxt.create_order
  2. 下单后立刻 fetch_positions 验证time.sleep(1.5)ex.fetch_positions(),拿 actual_leverage / actual_margin / actual_notional
  3. 报告用 actual_* — advisor 推荐值 ≠ 实际成交值(参考 §2 agent-workflow-feedback-rules)

强制不做的事

  1. 直接 python3 -c "import ccxt; ex.create_order(...)" 裸调
  2. 跳过 advisor 自己算 size / leverage / SL / TP
  3. 下单后不 fetch_positions 验证就报数据
  4. 报"已下单" 之前 status=closed

Pitfalls (2026-07-21 实战踩坑)

Pitfall 1 — 不能用裸 ccxt 下单

用户问"跟单了吗" → 我用 python3 + ccxt.create_order(...) 直接下单 → 下单参数错(0.014 张 vs OKX 0.01 min_sz,实际成交 0.01) → 绕过 advisor,出错也无处 review。

Pitfall 2 — advisor leverage=5 不生效

params={'leverage': '5'} 在 OKX v5 API 不被支持作为下单参数 → 实际用账户默认 leverage(通常是 10x)。

实测:

  • advisor JSON: leverage=5, margin=$46.79 (基于 5x)
  • 实际成交: leverage=10x, margin=$26.82 (实际账户默认)
  • 推送: "0.31 张 @ 5x" — 错的,实际 10x

唯一可靠: 下单后 fetch_positions()p['leverage'] 字段。reference leverage-pass-through-bug.md 有详细 workaround(用 OKX 私有 API /api/v5/account/set-leverage 先设 leverage)。

Pitfall 3 — mihomo 节点挂掉 = 下单失败 SSL/timeout

VPS 在国内,OKX 必须走 Clash 7890。Clash 节点 ns1.accor.co.im / ns1.mercure.zone / 01-synexvm-hk-std.node-ddns.top 频繁 timeout(2026-07-21 实测,节点供应商挂)。

对照方案:

  • BiXin Network selector select type → 改成 fallback type(2026-07-21 改过)
  • mihomo_watchdog.sh 3 min 自动检测 + 重启(2026-07-21 建,可能还要 fix)
  • 节点全挂时 → 手动加新 wireguard 节点(Mihomo v1.19.8 内置支持 wireguard outbound)

hk_intraday_close_cron.sh 等是顶层 symlink 指向 stocks/,如果用 cp ~/.hermes/scripts/<file> 复制,会复制成 plain file,后续 stocks/<file> 改动不生效。

正解: wrapper 写绝对路径硬编码 /home/openclaw/.hermes/scripts/stocks/hk_intraday_cli.py

Cron 集成

cron script 字段不要写 python3 ~/.hermes/scripts/<x>.py —— 改为:

script: okx_trade.sh

然后 cron 调 bash ~/.hermes/scripts/okx_trade.sh <action> <args> 即可。

MEMORY 铁律

写入 MEMORY.md:

  • 铁律 14: 跟单不许反问 — 信号来了立即 advisor → 下单, 不问 yes/no/几张
  • 铁律 15: 保单前查真实状态 — 不报 advisor 推荐值当事实; 下单后立即 fetch_positions() 验证

详细见 ~/.hermes/memories/MEMORY.md