Files
Hermes-Skills/okx-auto-position/references/v4.5.53-trader-unknown-skip-gate-2026-08-18.md
T

76 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 信号源缺失闸 v4.5.53 (2026-08-18)
## 触发事件
8/18 SNDK 做空 2x 信号进来:
```
✅ SNDK 做空 🟥 2x 新开仓
📊 信号源: 未知 158.00 SNDK(价值$?)
📐 性价比检查: 3.0:1 ✅
✅ 执行结果: 入场 $1724.76, 仓位 0.095张, TP $1499.38, SL $1799.79
━━━ Free: 27.64 | SNDK/USDT:USDT: 0.095张 ━━━
```
用户反馈: **"这个没信号源的就不要跟单了"**
## 根因
`parse_signal()` 在 `trader` 字段解析不到时硬编码 `'未知'`(之前是 `'X聚合社区'`, 后改 `'未知'`)。但**主流程没有这道闸**, 仍然跑 advisor + execute。
风险:
- 信号文本可能被人恶意构造/拼接, trader 字段缺失不代表有效信号
- 用户已经因为锁的 trader 跟单, 突然跳一个"未知"开仓, 风险敞口未知
## 修法 (v4.5.53)
在 `process_signal()` 主流程入口加闸,**在 `is_signal_stale` 之前**:
```python
# 2026-08-18: 信号源缺失闸
_sig_type_for_gate = classify_signal(fields)
if trader == '未知' and _sig_type_for_gate in ('open', 'add', 'reduce'):
msg = f"""⏭️ **跳过跟单: 信号源未知** ⏭️
📊 币种: {symbol} {side} {leverage}x
🚫 信号文本里没有【交易员】/👉 跟单就选 / 任何 trader 标签
❌ 不自动跟单,避免执行来路不明的开仓
💡 如果这条信号确实要跟, 请手动开仓 + 告诉我 trader 名字, 我会加到名单。
"""
push_to_qq(msg)
_tracker_record(trader='未知', ..., outcome='skipped_unknown_source')
return f"⏭️ 跳过: 信号源未知 | {symbol} {side}"
```
## 行为矩阵
| signal_type | trader='未知' | 行为 |
|---|---|---|
| `open` | ❌ 跳过 | 推 QQ + 记录 tracker |
| `add` | ❌ 跳过 | 推 QQ + 记录 tracker |
| `reduce` | ❌ 跳过 | 推 QQ + 记录 tracker |
| `close` | ✅ 继续执行 | 平仓是兜底, 即使来源不明也执行(防止长期持仓不释放锁) |
**关键决策**: close 信号不阻断。如果未来有"恶意平仓信号"问题, 需要单独评估。
## Tracker outcome
新 outcome 值: `skipped_unknown_source`。可在 SQL 查:
```sql
SELECT * FROM signals WHERE outcome = 'skipped_unknown_source' ORDER BY created_at DESC LIMIT 10;
```
## 用户操作路径
如果某条 trader='未知' 的信号确实要跟:
1. 手动开仓 (OKX app 或 CLI)
2. 告诉 agent trader 名字 + 信号文本
3. agent 把它加到信号源名单 (parse_signal 优先匹配 `【交易员】` / `👉 跟单就选`)
## 类似场景的类比
`lottery-hk` v1.4.0 候选稀疏兜底是**反向**: 数据少时主动补 4-5 个号(用户偏好)。**两个 skill 区别**:
- okx trader='未知': 用户说**跳过**(风险事件)
- lottery 候选 <4: 用户说**补**(娱乐场景)
判断标准是**用户原话** + **风险性质**, 不是哲学一致性。