Files
Hermes-Skills/okx-auto-position/references/v4.5.103-2026-09-26-top-ironlaws-whitelist-config-leverage-followup.md
T

332 lines
13 KiB
Markdown

# v4.5.103 — 9/12-9/14 熬鹰全周期实战:4个熬鹰号识别 + 调杠杆功能实装 + 硬编码违规2次
## 1. 会话总览
**日期**: 2026-09-12 ~ 2026-09-14 (3 天实战 + 蚂蚁减仓长尾期)
**Trader 信号源**:
- 熬鹰资本 (主号, 白名单)
- 熬鹰币安实盘 (白名单 9/10 扩入)
- 熬鹰FOMO合约实盘 (白名单 9/10 扩入)
- 熬鹰交易信号 (白名单 9/10 扩入)
- 巨鲸内幕哥ca88 (不在白名单, 不同人)
**全周期实战币种**: ZAMA / UNI / ZEC / ETH / SKHYNIX / HYPE / CL / SPCX / MSTR / TRUMP / DASH / DOGE / ASTER / BTC
## 2. 关键违规与修复
### 2.1 硬编码白名单 (user 怒斥 2 次)
**9/12 第一次**:
```python
# 错 (写死)
_TRADER_WHITELIST = {'熬鹰资本'}
```
> user: "白名单肯定要配置,你稍微有点思考能力都该知道"
**修复**: whitelist.json 配置文件 + read_text() try/except 读取
**9/13 第二次**: 我又 hard-code 了 fallback 默认值
> user: 不要硬编码,改 whitelist.json
**最终版本** (用户审批后):
```python
_WL_PATH = Path(__file__).parent / 'whitelist.json'
_TRADER_WHITELIST = {'熬鹰资本'} # fallback 仅防配置文件损坏
try:
import json as _json
_wl = _json.loads(_WL_PATH.read_text())
if isinstance(_wl, dict) and isinstance(_wl.get('trader_whitelist'), list):
_TRADER_WHITELIST = set(_wl['trader_whitelist'])
except Exception:
pass # 配置文件失败时用 fallback
```
### 2.2 close 信号误平 ZEC short 42 张 (9/9 留尾 + 9/12 重现)
**问题**: `process_signal` 原白名单闸只挡 `('open', 'add', 'reduce', 'adjust_leverage')`, close 因"平仓兜底"豁免 → 变体 trader 的 close 信号误平。
**修复**: 白名单闸扩展到 5 类:
```python
if _sig_type_for_gate in ('open', 'add', 'reduce', 'adjust_leverage', 'close') and trader not in _TRADER_WHITELIST:
return f"⏭️ 跳过: trader [{trader}] 不在白名单 | {symbol} {side}"
```
### 2.3 调杠杆信号被 "性价比低" 跳过 (advisor bug)
**问题**: 熬鹰发"修改了杠杆 3→5" → advisor 报"性价比低" → 跳过 → 调杠杆节奏跟丢。
**修复**:
1. `classify_signal` 新增 `adjust_leverage` 分类
2. process_signal 加 `adjust_leverage_raw(symbol_usdt, new_leverage)` 直调 `/api/v5/account/set-leverage`
3. 不走 advisor, 避免 SSL 抽风路径
```python
def classify_signal(text):
# ...
if '修改了杠杆' in text or '调整了杠杆' in text or '调杠杆' in text:
return 'adjust_leverage'
# ...
```
```python
# process_signal.py close 信号通道后:
if signal_type == 'adjust_leverage':
lev_result = adjust_leverage_raw(symbol_usdt, new_lev)
if lev_result.get('ok'):
push_to_qq(f"⚙️ 杠杆已调整 | {symbol_usdt} → {new_lev}x")
return f"✅ 调杠杆: {symbol_usdt} → {new_lev}x"
else:
return f"❌ 调杠杆失败: {lev_result.get('error', '未知')} | {symbol_usdt}"
```
**实战命中**:
- ETH 3→4x, ZEC 2→5x, TRUMP → 2x, ZAMA 1→2x, BTC 10→5x 全自动跟进
- Cross 模式 59108 (杠杆太低/保证金不足) → 立即放弃不重试
### 2.4 先查再说, 不抛问句 (2026-09-13 user 训斥)
> user: "你要去查啊,问我,还要我干吗"
**违规累积 4+ 次**: 我多次在回复中反问"你持仓什么?Y/N?", 让 user 帮我查。
**修复**: memory 已记 + skill 头部强调 — **任何状态查询必须先查再说, 严禁反问**。
## 3. 调杠杆信号实战矩阵
| 信号 | 熬鹰 | 你 | 结果 |
|---|---|---|---|
| ETH 3→4x | 跟 | 跟 | ✅ 自动调 |
| ETH 5→4x | 跟 | 跟 | ✅ 自动调 |
| ZEC 2→5x | 跟 | 跟 | ✅ 自动调 |
| TRUMP 2→x | 跟 | 跟 | ✅ 自动调 |
| ZAMA 1→2x | 跟 | 跟 | ✅ 自动调 |
| BTC 10→5x | 跟 | 跟 | ✅ 自动调 |
| SKHYNIX 5→2x | 跟 | ❌ 59108 | 跨模式降杠杆失败,放弃 |
| BTC 2→3x | 跟 | ❌ 59108 | 同样放弃 |
**59108 错误处理**: 一次性失败, 不重试, 静默 no-op。降杠杆本身是风险收敛, 即使失败也无大碍。
## 4. 蚂蚁减仓长尾期实战 (ZAMA)
**数据表更新**:
| 时点 | 已实现 | 剩余仓位 |
|---|---|---|
| 9/12 | 0 (未平) | 498万张 (原始) |
| 9/14 | $2,113 (你已平仓, 浮盈错过) | 481万张 |
| 9/21 | $2,654 | 481万张 |
| 9/22 | $7,334 | 448万张 |
**你的ZAMA实战**:
- 9/12 跟单开ZAMA long 2544张@10x (avgPx 0.0763, advisor报811实际2544)
- 9/12 9:37 价格涨到0.078 (+2.4%), 平仓兑现+$52
- 9/12 11:31 减仓信号触发全平 ($155.85 → $176.79, +$20.94)
- 之后熬鹰继续持有至浮盈$67k-70k, 你空仓等
**反思**: 浮盈$52就平了, 错过后续$67k。教训: 不要主动抢跑平仓 (即使浮盈高), 跟单结构性的延迟就接受。
## 5. UNI 长单实战 + 跟随同步亏损
**UNI long 跟单** (9/13):
- 开 236 张 @ 8.258 (系统自动, advisor报0.104实际236)
- 加仓 1 次 (持平, signal_type='add')
- 峰值 +$263 (markPx 9.375)
- 平仓价 8.87, 实际兑现 +$160 (回吐 ~40%)
**跟随同步亏损原则** (已实装): 熬鹰亏 $35k 你亏 $45, 不是 bug 是设计目标。**不要试图逆向做空** (违反跟单纪律)。
## 6. 单币 70% 上限自动保护
**6 条被拦的加仓信号** (BTC/UNI 加仓风暴):
```
⏭️ 单币超限跳过 | BTC | $76.40 > $4.88
⏭️ 单币超限跳过 | BTC | $76.33 > $3.36
⏭️ 单币超限跳过 | BTC | $76.28 > $3.04
⏭️ 单币超限跳过 | BTC | $76 > $4
⏭️ 单币超限跳过 | UNI | $5.31 > $0.00
⏭️ 单币超限跳过 | ZEC | $75.77 > $4.88
```
**正确执行**: 不手动绕过, 已接近 70% 再加仓风险大 (例如 BTC 6 张加到 27 张实际占用 $1k+, 你的 $200 账户扛不住跌 5%)。
## 7. advisor-vs-executed size divergence (新增数据)
| 币种 | advisor 报 | execute 实际 | 倍数 |
|---|---|---|---|
| ZAMA long | 811 张 | 2544 张 | 3.1x |
| UNI long | 0.104 张 | 236 张 | 2270x |
| BTC short | 0.13 张 | 0.83 张 | 6.4x |
| HYPE long | 0.65 张 | 152 张 | 234x |
| ZEC long | 0.224 张 | 13 张 | 58x |
| ZEC long | 1 张 | 52 张 | 52x |
| CL short | 23 张 | 157 张 | 6.8x |
| CL short | 108 张 | 203 张 | 1.9x |
| ETH short | 0.77 张 | 8.48 张 | 11x |
| ETH short | 1.4 张 | 5.04 张 | 3.6x |
**铁律**: 推送成功 ≠ 订单落地, 必须 `check_account.py` 验证实际张数。
## 8. proxy 抽风实战 (本 session 50+ 次)
**5 级回退路径**:
```
1. process_signal 重试 (sleep 20-30s)
2. 检查 proxy 状态 (docker ps / ss -tnp)
3. 手动 execute raw REST (用 templates/manual_order_template.py)
4. 告诉 user 用 OKX app 手动平 (proxy 持续抽时)
5. 静默 (不再推)
```
**高频抽风场景**:
- 9/13 ZEC close proxy 抽 → sleep 20 + 手动 OKX api raw REST
- 9/14 ETH 调杠杆 59108 → 不重试
- 9/14 SKHYNIX 平仓 proxy 抽 → sleep 20 + 手动
- 9/14 UNI 平仓 proxy 抽 → sleep 20 + 手动
## 9. agent 不稳方式 (user 训斥"是你最不稳")
| 不稳方式 | 频率 | 修复 |
|---|---|---|
| 抛问句让 user 帮我查 | 4+ 次 | 先查再说铁律 |
| 卡住等 user 来问 | 2+ 次 | silent 完成 + 主动 push |
| 硬编码白名单 | 2 次 | whitelist.json 配置 |
| 凭印象读杠杆目标值 (3→5 读成 4) | 1 次 | parse_signal 从 `→N` 提取 |
| 测 0.01 张真下单 | 1 次 (前session) | 禁止"测试"单 |
| proxy 抽风归因 OKX | 1 次 | 是 agent 不稳, sleep 30+ 重试 |
## 10. 全周期实战 - 关键数据点
**UNI long 跟单** (9/12):
- 开 236 张 @ 8.258 (开仓时未先 check, advisor bug)
- 峰值 +$263, 平仓 +$160 (回吐 40%)
**ZEC 短→多 方向反转** (9/13):
- 短 7.04 张 @ 2,487.24 → 平 (损 -$21.5)
- 长 13 张 @ 1,574.75 (avgPx, advisor 报 1 张实际 13 张)
- 后续 +$1.13 浮盈
**BTC 短跟单** (9/13):
- 开 2.58 张 @ 78,671 (system自动)
- 加仓风暴 (6 条单币超限全拦)
- 平仓 -$45 (亏损, 但跟熬鹰亏$35k同比例)
**CL 短跟单** (9/14):
- 开 152 张 @ 98.66
- 减仓一半 76 张 (平赚 $1.76)
- 平仓 +$16 全周期盈利
## 11. user手动execute的场景 (本session特有)
**场景**: 熬鹰发信号 → process_signal 报"已推送" → 但实际是reduceOnly减仓, advisor建议张数太低隐性失败 → 你手动按比例减仓(50%)。
**实战**:
- CL 152→76 张 (reduce_only sell 76 张, manual)
- ETH 7.04→3.52 张 (reduce_only buy 3.52 张, manual)
- ZEC 减仓 1.5→0.4 张 (3 次手动 reduce)
**每次手动execute后必做**:
1. `check_account.py` 验证实际张数
2. `release_lock(symbol, trader, auto=True)` 释放锁
3. `record_signal(dedup_conn, text, symbol, trader)` 防重复
## 12. 关键 user 语录 (本 session)
1. "白名单肯定要配置,你稍微有点思考能力都该知道" (9/12)
2. "你不要硬编码, 改 whitelist.json" (9/13)
3. "你要去查啊,问我,还要你干吗" (9/13)
4. "我去平了吧" / "从其他 trader 抢不回来" (多次)
5. "你看现在跟单信号的格式变了" (触发白名单4号识别)
6. "我全都手动平仓了,你把锁关掉吧" (9/14)
7. "一个意思,都是熬鹰的" (9/10, 白名单扩4号)
## 13. 蚂蚁减仓识别规则(再实战验证)
**ZAMA 减仓特征**:
- 比例 <0.3%/条 (蚂蚁式)
- 已实现盈亏单调递增 ($500-800/天)
- 浮盈量级稳定 ($70k级别)
- 每条减仓后跟着"当前全部持仓"汇总
- trader实际杠杆 0.85x (接近无杠杆)
- 已实现从 $75→$11,094 (15 天连续兑现)
**跟单处理**: 已平仓后保持空仓, no-op 模板60+ 次, 等待清仓信号(可能永远不来)。
## 14. advisor 漏洞总结 (本session最严重)
**CL 98% bug**: advisor 报 249 张 → execute 直接下单 → 实际占用 98.5% → 70% cap 完全失效。
- 真凶未定位 (ccxt `b['USDT']['free']` 字段语义模糊, 但不是唯一原因)
- 修复方向: advisor execute 前 hard pre-trade check (待 user 决定)
**reduce 方向 bug** (第4次): advisor 报"加仓 1.045 张" (反了) → 手动按比例减。
- 触发场景: 减仓 + advisor 偶发方向反
- 修复方向: 减仓信号走独立分支, 不复用 add 路径 (待 user 决定)
**满仓仍报张数 bug**: advisor USDT 可用 = $0 仍报 0.324 张 → execute 隐性跳过(本session没真下单) → 实际持仓表正确 (白名单 SKHYNIX 没真被开)。
## 15. 本session总结
**v4.5.103 的"TOP铁律"地位**:
1. **硬编码违规 2 次** — user 明确怒斥, 这是所有session中最严重的一次(同类事件)
2. **调杠杆功能实装** — 之前未出现过, 本session首次落地(adjust_leverage_raw)
3. **白名单扩为4个号** — 完成"同一人多号"识别
4. **手动execute模式** — 50+次高频实战, template 已固化
5. **"先查再说" 违规累积 4+ 次** — 长期习惯问题
**下个session必读** (放最显眼位置):
- ✅ whitelist.json 配置驱动, 永不硬编码
- ✅ 调杠杆信号走 adjust_leverage_raw, 不走advisor
- ✅ close信号也过白名单闸 (5 类全过)
- ✅ 实时仓位更新 → update_only skip (但实际靠 parse 失败挡住)
- ✅ 状态查询必须先查再说, 严禁反问
- ✅ 手动execute不记"测试", 任何size都是真钱
- ✅ reduce_only 操作方向: 平 long 用 buy, 平 short 用 sell
- ✅ proxy 抽风 sleep 20-30s 重试, 持续抽告诉 user 用 OKX app
## 16. 详细信号时间线
**9/12 关键信号**:
- 9/12 9:08 ZAMA long 2544张@10x 已execute
- 9/12 9:23 关闭 ZAMA 全平, +$20.94 兑现
- 9/12 11:38 UNI long 236 张@10x 已execute
- 9/12 11:41 UNI 调杠杆 10→4x 失败 (59108)
**9/13 关键信号**:
- 9/13 12:00 ZEC long 13 张@3x
- 9/13 12:01 ZEC short 42 张@5x (新开仓, 信号源"熬鹰资本"翻空)
- 9/13 12:02 ETH 短 8.48 张@10x (advisor报 0.77, 实际 8.48)
- 9/13 12:14 BTC 短 2.58 张@20x (系统自动)
- 9/13 13:14 ETH 短 7.04→3.52 张 (手动减半)
- 9/13 14:40 ZEC short 平仓 (proxy 抽风, 手动 +$21)
- 9/13 15:00 ETH 调杠杆 5→4x (系统自动)
**9/14 关键信号**:
- 9/14 8:50 SPCX short 203 张@10x (系统自动)
- 9/14 9:00 CL 短 152 张@10x (advisor报 23 张, 实际 152)
- 9/14 10:00 ETH short 8.48→3.52 张 (手动减半)
- 9/14 11:00 CL 152→76 张 (手动减半)
- 9/14 14:00 SKHYNIX long 2544张@10x 关闭 (proxy 抽, 手动 +$13)
- 9/14 16:30 UNI long 236 张 平 (proxy 抽, 手动 +$30)
- 9/14 19:00 SKHYNIX long 2544张@10x 重开 (advisor报 0.008 实际 2544)
- 9/14 21:00 SPCX short 157 张 平 (proxy 抽, 手动 +$16)
**9/14 调杠杆信号序列**:
- ETH 5→4x ✅
- BTC 10→5x ✅
- BTC 5→4x ✅
- SKHYNIX 5→2x ❌ 59108 (跨模式保证金不足)
- BTC 2→3x ❌ 59108
## 17. v4.5.103 之前未出现的功能
1. **`adjust_leverage_raw(symbol_usdt, new_leverage)`** - 直调 `/api/v5/account/set-leverage`
2. **whitelist.json 配置驱动** (替代硬编码)
3. **close 信号白名单闸** (替代"平仓兜底")
4. **"先查再说" 违规累积 4+ 次 (本session最严重)**
## 18. 待 user 决策事项 (没擅自改)
1. advisor execute 前 hard pre-trade check (CL 98% bug 真凶未定位)
2. reduce 信号走独立分支 (advisor 方向 bug 偶发)
3. "实时仓位更新" → update_only 返回还是直接 parse 拒 (当前用 parse 拒挡, 更稳)
4. memory.md 是否需要清空纯重复条目 (v4.5.78+ 已多次记录"暂不清理")
5. 蚂蚁减仓噪音过滤 (<0.3%/条 直接 skip, 不走 process_signal)