Files
Hermes-Skills/okx-auto-position/references/v4.5.26-2026-07-08-skhnx-silent-and-execute-bugs.md

80 lines
4.3 KiB
Markdown

# v4.5.26 — 2026-07-08 SKHYNIX 80+连发信号session总结
## 会话事件时间线
- **18:00-20:30** SKHYNIX 长串重复加仓信号 (80+ 条)
- 仓位从 3.06 → 957 张,SKHYNIX 始终在 $1352-1390 区间拉锯
- 每条信号 process_signal 都成功推 QQ (重复加仓信号)
- 你的 SKHYNIX long 持仓 0.216 张 @5x 一直未变 (avail USDC 不够继续加仓)
- 浮盈从 +$0.30 → +$6.13 → +$3.66 → +$3.13 区间波动
- 用户反馈点: 没有"会话级聚合播报"机制,每条都推一遍
## 核心 bug 修复 (本会话已落地)
### 1. 平仓信号 dedup 误跳 (v4.5.4)
**根因**: `is_duplicate()` 2 分钟窗口把"减仓→平仓"两个**完全不同语义**信号合并去重
**修复**: `classify_signal` 前置,close 信号走独立通道(只信 raw_text hash 唯一性)
**验证**: 熬鹰 ETH short 平仓信号 → 走独立通道 → 自动平仓成功 (1.85 张 @5x,锁定 -$6.58 浮亏)
**用户反馈**: "要是我没发现,就一直不推了吗?重试机制呢"
**修复代码**: process_signal.py 已落地 (见 scripts/process_signal.py 第 ~600 行)
### 2. 回复侧 vs QQ 推送侧严格区分 (v4.5.3)
**用户原话**: "我是指这个信息,是你分析的吗,只需要把跟单结果中涉及数据相关的推给QQ,这里不需要推"
**规则**:
- ✅ QQ: 完整数据(品种/方向/张数/杠杆/avgPx/upl/保证金/可用余额/强平价/异常)
- ❌ Telegram: 只报核心状态,一句"X X张@Yx,浮盈/亏Z,USDT W"
- ❌ 禁止: 跟单小结/对比分析表/三选一/Y/N 菜单/"熬鹰开比你高/逆势"等主观判断
## 已知问题(本会话暴露,未修复)
### 问题 1: SPCX/MU 等新币种 `advisor --execute` 不下单
- 症状: advisor 返回完整 JSON(contracts/margin/tp_price 等),看起来一切正常,但实际无成交,availBal 不变
- 案例:
- SPCX short 1.45 张 → 未成交(2 次)
- MU short 0.51 张 → 未成交(1 次)
- SKHYNIX long 0.216 张 → 实际成交了(系统未报告 order_id)
- 推测: advisor `--execute` 路径对部分新币种有兼容 bug,execute 成功但 stdout 不返回 `order_id`
- 临时解决: 看到"已推送"必须用 raw REST `/api/v5/account/positions` 反查真实持仓
### 问题 2: 80+ 连发加仓信号无变化
- 症状: 同一交易员同一币种 1 小时内 80+ 条加仓信号,仓位变化 <1% / 趋势震荡
- 现行规则: process_signal 走 2 分钟窗口 dedup,所以大部分被跳过
- 但每条仍有 process_signal overhead + QQ 重复推送 (但消息相同)
- 用户隐含期待: **沉默窗****变化阈值** 机制 — 比如
- 仓位变化 <2% 时合并推送
- 价格变化 <0.5% 时合并推送
- 同币种同交易员 5 分钟内只推 1 条汇总
### 问题 3: `execute_order` 返回无 `order_id` 字段
- 症状: 脚本返回 JSON 但缺 `order_id`,agent 看到 stdout 以为没成,实际已成交
- 案例: CL 40 张,SPCX 1.45 张,MU 0.52 张,SKHY 3.18 张 — 全部 execute 后用 raw REST 反查发现已成交
- 修复建议: `execute_order` 路径成功下单后,在 stdout JSON 追加 `{"order_id": "...", "filled": true/false, "fill_price": ...}` 字段
- 临时工作流: 看到 advisor `--execute` 返回 → 必须 raw REST 反查真实持仓
## 给未来 session 的关键 takeaways
1. **close 信号永远不走 2 分钟窗口 dedup** — 这是 v4.5.4 永久修复
2. **新币种(SPCX/MU/SKYNIX 等)execute 后必须 raw REST 反查** — advisor stdout 不可信
3. **回复侧极简,QQ 推送全** — v4.5.3 永久规则
4. **拉锯市沉默窗 / 变化阈值合并** — 下一版 v4.5.26 候选,本次未实现
5. **SKILL.md 数据丢失事故 (v4.5.24)** — 当前主 SKILL.md 是 placeholder,需要恢复 v4.5.23 全文
## SKILL.md 恢复 path (下次 session 第一件事)
```bash
cd /home/openclaw/.hermes/skills/trading
git show b6d0d68:okx-auto-position/SKILL.md > /tmp/skill_v4.5.23.md
# 然后在 v4.5.23 顶部加 v4.5.24/v4.5.25/v4.5.26 章节(参考 references/)
cp /tmp/skill_v4.5.23.md okx-auto-position/SKILL.md
# patch 新章节
git add okx-auto-position/SKILL.md
git commit -m "v4.5.26: 恢复 v4.5.23 完整正文 + 本会话累积学习"
git push origin master
```
## 完整 push log (本会话)
| commit | 内容 |
|---|---|
| `b6d0d68` | v4.5.3: 区分回复侧 vs QQ推送侧 |
| `8c03e22` | v4.5.4: 平仓信号 dedup 误跳 bug 修复 |