User 2026-07-30 反馈: - 脚本名 lottery_te_ma.py → lottery_特码.py (中文, 更直观) - 同步 SKILL.md 引用 (description + scripts 段) - version 1.2.5 → 1.2.6
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
强制做的事
- 走 skill 路径 — 调
okx_position_advisor.py的recommend_position+execute_trade,不直接 ccxt.create_order - 下单后立刻 fetch_positions 验证 —
time.sleep(1.5)后ex.fetch_positions(),拿 actual_leverage / actual_margin / actual_notional - 报告用 actual_* — advisor 推荐值 ≠ 实际成交值(参考 §2 agent-workflow-feedback-rules)
强制不做的事
- ❌ 直接
python3 -c "import ccxt; ex.create_order(...)"裸调 - ❌ 跳过 advisor 自己算 size / leverage / SL / TP
- ❌ 下单后不 fetch_positions 验证就报数据
- ❌ 报"已下单" 之前 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 Networkselectorselecttype → 改成fallbacktype(2026-07-21 改过)mihomo_watchdog.sh3 min 自动检测 + 重启(2026-07-21 建,可能还要 fix)- 节点全挂时 → 手动加新 wireguard 节点(Mihomo v1.19.8 内置支持 wireguard outbound)
Pitfall 4 — 下单脚本不能 cp 顶层 symlink 到 stocks/
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。