Files
Hermes-Skills/okx-auto-position/references/forced-skill-entry-okx-trade-2026-07-21.md
T
mike b660debd06 v2026-07-21: 实战教训汇总 (push 11 文件)
新增 8 reference:
  - dividend-stability-score: A 股 5 维评分 (派息年数/CAGR/波动/最近/连续) → 0-100 分 + 5 星
  - dividend-yield-rate-sort: 按股息率% 倒序 (用户偏好 2026-07-13)
  - longport-http-module: longport_http.py 公共模块 (替代 SDK WSS)
  - leverage-pass-through-bug: process_signal.py 丢失 leverage 字段 (5x 实际 10x)
  - follow-trading-iron-laws: 跟单铁律 (用户原话 5+ 次 2026-07-21)
  - forced-skill-entry-okx-trade: okx_trade.sh 强制入口 (替代 ccxt 裸调)
  - mihomo-clash-node-supplier-dns: Clash 节点供应商 DNS 失败处理
  - mihomo-ssl-reconnect-pattern: mihomo 反复 SSL/Timeout 模式
  - v4.5.44-mu-add-to-75pct-cap: MU 加仓 75% 单币种 cap 标准流程

改 2 SKILL.md:
  - dividend-investing: 加 5 维评分 + 长桥 http 模块
  - longbridge-cli: 标注 '不要写 openapi.QuoteContext' + 迁移说明
2026-07-22 13:22:45 +08:00

2.4 KiB

强制 skill 入口: okx_trade.sh (2026-07-21 实战)

问题

按信号跟单,反复踩的坑(用户原话 2026-07-21):

"按信号跟单为什么能跑出这么多问题?"

根因: agent 跳过 skill 路径,直接调 ccxt 下单。每次自己重写代码 → 拼凑错单(leverage 5→10, min_sz 凑整错, 0.014→0.01)。

正确做法: 所有 OKX 下单/平仓强制走 skill 内置路径,不绕过 advisor.execute 流程。

强制入口脚本

位置: ~/.hermes/scripts/okx_trade.sh

# 用法
okx_trade.sh open <symbol> <side> <leverage>    # 开仓(自动算 size)
okx_trade.sh close <symbol>                    # 平仓
okx_trade.sh close-all                          # 全部平仓
okx_trade.sh status                             # 看持仓

open 内部流程:

  1. okx_position_advisor.py --symbol X --side Y --leverage Z --json 算 size + SL + TP
  2. okx_position_advisor.py ... --execute --rec-json ... 下单(自动设 leverage, 75% cap)
  3. 立刻 fetch_positions() 验证(lever / margin / side)

为什么这个设计能避免错单:

  • advisor 算的 size 是 min_sz 凑整过的(BTC 1.43 张,不是 0.014)
  • advisor 内部用 setLeverage 私有 API 强制设杠杆(虽然 v4.5.44 仍 10x bug,但走 advisor 路径)
  • execute 后立即 verify → 不依赖 advisor 的 "成功" 返回

实战教训 (2026-07-21)

错单 1: ETH 1.24 张 long

  • agent 看到 advisor 报 5x + 1.0 张 → 手动调 ccxt 下 1.24 张 ETH
  • 实际: leverage 10x (process_signal.py bug), ETH 不是 BTC,1.24 张不是 1.0 张
  • 应该用 okx_trade.sh open BTC long 5(advisor 路径)

错单 2: BTC 0.014 张 long

  • agent 看到 BTC 多 5x signal, 手动 ccxt 下 0.014 张(乱算的)
  • 实际: 0.014 张小于 min_sz (0.01), 只成交 0.01 张
  • 应该用 okx_trade.sh open BTC long 5 → advisor 算 1.43 张

部署状态

  • okx_trade.sh 已写
  • 没自动化 — agent 默认走 ccxt,需要主动调用
  • mihomo 反复 timeout 时 okx_trade.sh 也失败

建议: 强制 alias

okx_trade.sh 设成 OKX 下单唯一入口(把 ccxt 调 OKX 私有 API 限制到只能 advisor 用):

# ~/.bashrc 加 alias
alias okx_open='bash ~/.hermes/scripts/okx_trade.sh open'
alias okx_close='bash ~/.hermes/scripts/okx_trade.sh close'

真正治本是 process_signal.py 内部 hardcode 强制走 advisor 路径,不加 fallback。