6.9 KiB
6.9 KiB
v4.5.115 (2026-09-26) — 推送失败 ≠ execute失败 + 换频道端到端验证链 + token 纪律
三大本session铁律
1. 推送失败 ≠ execute失败 (实战: ONDO加仓)
事故:
- 09-26 00:46 用户发 ONDO 加仓信号 (893478 → 933231 ONDO)
process_signal.py返回❌ 推送失败(QQ 推送到 3805472665 失败, 可能是 mihomo proxy SSL 抽风)- agent 第一反应差点告诉用户"信号没处理"
真相:
check_account.py验证 ONDO 已从 54 张加到 383 张 (新加 329 张@0.518, markPx 0.520, 浮盈+$8.41)- advisor execute 成功, 只是 QQ push QQ BOT TOKEN 推不到 QQ 群
- ONDO 加仓完全成功
教训:
process_signal.py返回❌ 推送失败/⚠️ advisor错误不等于没成- 唯一金标准 =
check_account.py [SYMBOL-USDT-SWAP]看实际持仓/账单 - 实战: 推
❌ 推送失败后必跑check_account.py再下结论 - 同时查
/api/v5/trade/fills-history(近 1 小时) 验证 execute 是否真的下成 - token 纪律:
❌ 推送失败不展开成"信号类型 X → 白名单通过 → advisor 报错 Y → 推送 Z 失败 → 处理"全流程 (浪费 token), 一句话 "推送失败, 已查 OKX 持仓变化确认 execute 成功" 即可
2. 换频道端到端验证链 (实战: ONDO 漏发)
事故:
- 09-24 用户问"现在用的是哪个频道", 切换到 @shipan_jiankong
- 修复 forwarder chat_id bug (v4.5.114)
- 只检查了 DB 配置, 没验证实际信号流
- 09-26 ONDO 加仓信号漏发 — 用户发现 ONDO 是他自己手动开的, 大怒: "本来应该你来开仓及加仓的"
根因:
- 频道修复后, docker 日志确实有 "Got difference for channel 2651333064 updates" (每 15 分钟轮询)
- 但没有
[新消息|处理规则|转发|命中黑名单]日志 — 说明 forwarder 收到了 update 事件, message handler 没匹配 source chat - 频道里确实有真实信号 (用 telethon
iter_messages('shipan_jiankong', limit=10)验证 9-23 ~ 9-24 有 10 条真实信号), 但 forwarder 完全没转发
4 步端到端验证链:
- DB 配置:
docker exec telegram-forwarder python3 -c "import sqlite3; ..."读/app/db/forward.db验证:forward_rules.source_chat_id是否改了?chats.telegram_chat_id新 chat_id 加了?enable_rule=1?
- Forwarder 监听器触发:
docker logs telegram-forwarder --tail 100必须看到[处理规则|新消息|命中黑名单]日志. 只有Got difference for channel XXX updates不够 - 真信号触达: 频道有真实交易信号? 用 telethon
iter_messages('username', limit=10)验证- 容器内需
cp /app/sessions/user.session /tmp/u.session解锁 - 容器内连 TG 必带
proxy=('socks5','127.0.0.1',7891), request_retries=1
- 容器内需
- 执行闭环: 新信号→ pipeline → OKX execute →
check_account.py显示仓位变动
只改 db 不验证后续 = 假成功
3. Token 纪律: 同类操作合并输出
事故:
- 熬鹰 ZAMA 连续 50+ 条"🐜 蚂蚁减仓" (< 1%) 信号从 9-22 一路发到 9-26
- agent 每条都回复 "蚂蚁减仓no-op" + 重复 "USDT $576" → 浪费大量 token 输出无意义结果
- 用户怒纠: "调整一下, 蚂蚁减仓尽量减少token的消耗"
教训:
- 同一交易员短时间内发 50+ 条同类型噪声信号 (蚂蚁减仓/连续加仓/连续汇总) 时, 必须合并输出
- 正确做法:
- 第一条: 简短说明"蚂蚁减仓已用 1% min 过滤跳过"
- 后续同类: 只输出 "无操作" 或合并到一条总览 "⚠️ 50 条蚂蚁减仓全 no-op, 已实现累计+$X"
- 不要再重复 "USDT $576/权益$709/持仓不变" 等固定信息
- 实战黄金原则:
- 同类 ≤ 3 条: 逐条简短
- 同类 4-10 条: 合并成"X 条 X 操作已 no-op"
- 同类 > 10 条: 只回"X 条已过滤" 一行
4. 1000PEPE advisor BadSymbol 绕过手法
事故:
- 1000PEPE 加仓信号 (
1000PEPEUSDT 永续) 触发 advisor - advisor 内部用
1000PEPE-USDT-SWAP查 symbol → OKX 上不存在 (币安合约名) → BadSymbol 崩溃 - advisor 报
⚠️ advisor错误, 整条信号失败 - agent 手动 raw REST 用
PEPE-USDT-SWAP开 PEPE 26 张对冲 (OKX 上 OKX 是 PEPE 不是 1000PEPE)
教训:
- advisor symbol 是硬编码
1000PEPE-USDT-SWAP, 不会自动 fuzz 到PEPE-USDT-SWAP - 同类 1000SHIB/1000FLOKI 等"1000x"币种都是 OKX 上没前缀版本
- 手动 raw REST 时主动用
PEPE-USDT-SWAP而不是1000PEPE-USDT-SWAP - TODO 待修: advisor 加 symbol_fuzziness 映射层 (v4.5.38 已记但未实装)
5. 白名单配置变更纪律
事故 (隐含):
- 用户多次强调"换频道不动其他" / "只动 forward_rules.source_chat_id"
- agent 仍有可能 "顺手优化" 黑名单/关键词/transit delay → 引入新风险
纪律:
- 任何配置变更, 只动用户明确说的部分
- 其它字段保持不变, 即使"看起来可以更优化"
- 如要建议其他优化, 单独询问, 不自动做
6. 硬编码黑名单 USDT/CNY 误杀完整排查
2026-09-22 修复 (前 session 实装, 本 session 触发了一次回归验证):
- 症状: 所有熬鹰信号
❌ 命中硬编码黑名单, 跳过转发 - 根因:
user_handler.py的HARD_BLACKLIST_PATTERNS含r'(?i)usdt|cny|套现', 而信号格式【币种】:BTCUSDT 永续必含 USDT - 修复:
r'(?i)(usdt|cny)(?!永续|usdt).{0,4}套现|套现'只拦"套现" - 修复后必跑
iter_messages+process_signal.py '<测试信号>'验证信号真的能被转发
详见 references/forwarder-hard-blacklist-usdt-blocking-2026-09-22.md
实战顺序 (本session 修复后端到端流程)
用户发信号
↓
agent 跑 process_signal.py (推送可能失败, 视为已知噪声)
↓
[关键] check_account.py 验证实际 execute
↓ 成功
↳ 回复 "已 execute: SYMBOL X 张 @ avgPx, 浮盈 ±$Y, 锁已加"
↓ 失败
↳ raw REST 手动兜底 (sleep 15s 重试, 或绕过 advisor bug)
↓
连续同类信号合并输出
实战失误 (本session 真实发生)
| 时机 | 失误 | 教训 |
|---|---|---|
| 9-22 ZAMA 减仓 | ❌ 推送失败 报告"信号失败" |
推送失败≠execute失败, 必查 check_account |
| 9-24 切频道 | 只改 db, 没验证执行闭环 | 4 步端到端验证链 |
| 9-24~26 ZAMA 蚂蚁 | 50+ 条逐条 no-op + 重复持仓 | 合并输出, 只回状态 |
| 9-25 用户问"现在用的哪个频道" | 没有 4 步验证, 只回答了 db 配置 | 切频道必查真信号流 |
参考
- v4.5.114: TG forwarder chat_id 提取 bug
- v4.5.113: classify 严格模式
- v4.5.111: 1% min 减仓过滤 + 4 熬鹰号白名单
- v4.5.110: ZAMA 蚂蚁减仓双层过滤
- v4.5.103: 4 熬鹰号首次识别为同一人
- v4.5.38: advisor 1000PEPE symbol fuzziness
- v4.5.71: whitelist.json 配置化 + query-first-no-asking
- references/forwarder-hard-blacklist-usdt-blocking-2026-09-22.md
- references/v4.5.114-2026-09-24-tg-forwarder-chat-id-extract-bug-and-channel-swap.md