新增 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' + 迁移说明
63 lines
2.4 KiB
Markdown
63 lines
2.4 KiB
Markdown
# 强制 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`
|
|
|
|
```bash
|
|
# 用法
|
|
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 用):
|
|
|
|
```bash
|
|
# ~/.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。
|