# v4.5.111 (2026-09-26 续) 1% min 减仓过滤实装 + 4个熬鹰号白名单扩展 + update_only/close闸验证 本 session 实战触发: ZAMA 蚂蚁减仓 100+ 条, user 主动要求加 1% min 过滤; trader 4 个号都验证是同一人,whitelist.json 扩展到 4 个号。 ## 1. 1% min 减仓过滤 - 实装与验证 ### 触发场景 熬鹰 ZAMA 减仓比例 0.05%~0.5% (平均 0.15%), 100+ 条下来每条都让 process_signal 跑完: - parse_signal - advisor reduce - check_account - 推送模板 → 100% no-op 但流程跑满, agent 沦为静默墙。 ### user 原话 > "要 (加 min 减仓过滤)" ### 代码修改 (process_signal.py line ~1144) ```python delta_pct = (trader_before - trader_after) / trader_before # 2026-09-26: min 减仓比例过滤 (1%以下忽略, 避免蚂蚁式减仓刷屏) _MIN_REDUCE_PCT = 0.01 if delta_pct <= 0: msg = f"⚠️ 减仓信号: 大佬实际是加仓 +{delta_pct*100:.1f}%, 跳过" elif delta_pct < _MIN_REDUCE_PCT: msg = f"⏭️ 减仓幅度过小 ({delta_pct*100:.2f}% < {_MIN_REDUCE_PCT*100}%), 跳过" else: # 按比例减 (执行) ``` ### 验证 (本 session 实际效果) | 时段 | 信号数 | advisor 触发 | 实际 no-op | |---|---|---|---| | 装过滤前 | ~60条/小时 | 60次 | 60次 | | 装过滤后 | ~80条/小时 | ~5次 | ~5次 | **噪音减少 95%**: < 1% 减仓被过滤, 不调 advisor 不查持仓, agent 不再沦为静默墙。 ### 关键实测选择: 不加 `!1%` 减仓信号会被无声忽略, trader 的 "清场" 信号 (单笔 ≥ 1%) 仍会触发, 不影响有效信号处理。 ### 与 v4.5.106 / v4.5.109 协同 - v4.5.109 的 20-轮状态总结触发器本来想 "agent 主动 push trader 状态", 但 advisor 触发 60 次/小时太频繁, agent 算力都被 check_account + advisor 吃掉了 - **1% 过滤减少 95% advisor 调用, 让状态总结能实际运行** - 现在 100+ 信号只跑 ~5 次完整流程, 状态总结有算力空间触发 ## 2. 4 个熬鹰号白名单扩展 ### user 原话 > "一个意思, 都是熬鹰的" ### whitelist.json 修改 ```json { "_comment": "跟单白名单配置 - 不要在代码里硬编码,改这里。trader=跟单交易员名字,设置在 trader_whitelist 数组。", "trader_whitelist": ["熬鹰资本", "熬鹰币安实盘", "熬鹰FOMO合约实盘", "熬鹰交易信号"] } ``` ### 关键验证: 4 个 trader 是同一人 | trader | 行为模式 | |---|---| | 熬鹰资本 | 主要发信号 | | 熬鹰币安实盘 | 同时发+操作, 又分批减仓 (同ZAMA 100+ 蚂蚁减仓) | | 熬鹰FOMO合约实盘 | 偶尔跟开仓 | | 熬鹰交易信号 | 偶尔发信号 | **行为高度同步**: 同一时段 4 个号都发 ZAMA 减仓, 已实现同步增长, 持仓同步变化 → 同一人, 多平台直播。 ### 闸已生效的 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}" ``` **闸规则**: 包括 open / add / reduce / adjust_leverage / close 五类全部过白名单。巨鲸内幕哥ca88/予与实盘/魏神/风寻等不在白名单的 trader 全部静默跳过 (process_signal v4.5.77 修复 close 也拦后实战验证)。 ## 3. update_only / adjust_leverage 信号类型 (classify_signal) ### 本 session 实装 ```python def classify_signal(fields): text = fields.get('_raw', '') if '平仓' in text or '止盈' in text or '止损' in text: return 'close' pnl = float(fields.get('pnl', '0').replace('+', '')) if '减仓' in text or (pnl < 0 and '减' in text): return 'reduce' if '加仓' in text or '追仓' in text: return 'add' # 调杠杆信号 (2026-08-26: 必须跟,不算性价比低 — 熬鹰调整杠杆是策略节奏) if '修改了杠杆' in text or '调整了杠杆' in text or '调杠杆' in text: return 'adjust_leverage' # 实时仓位更新 (2026-09-01: 这种是状态推送,不是真实开仓信号, 跳过) if '仓位实时更新' in text or '实时更新' in text: return 'update_only' # 2026-09-10: "当前全部持仓"汇总播报 — 状态展示,不是交易动作, 跳过 if '当前全部持仓' in text: return 'update_only' return 'open' ``` ### 实战命中 (本 session) - `熬鹰币安实盘\n📊 仓位实时更新\n...` → `update_only` skip → 不进闸、不调advisor、不推QQ - `熬鹰币安实盘\n熬鹰当前全部持仓\n...` → `update_only` skip → 同上 ### 闸处理顺序 ```python if _sig_type_for_gate == 'update_only': return f"⏭️ 跳过: 实时仓位更新信号(非真实开/加/减/平仓) | {symbol} {side}" ``` update_only 直接 skip, **不进白名单 trader 闸** (避免无谓 check), 也**不进 reduce 1% 过滤** (因为没真减仓)。 ## 4. adjust_leverage_raw 函数 bug fix ### bug ```python # process_signal.py 错误版本: resp = _okx_raw_request('POST', '/api/v5/account/set-leverage', body) ``` `_okx_raw_request` 签名: `(method, path, params=None, body=None, timeout=15)`, 位置参数 `body` 被当成了 `params`, OKX 返回 `'Incorrect json data format'`。 ### fix ```python body={"instId":inst_id,"lever":str(new_leverage),"mgnMode":"cross","posSide":"net"} resp = _okx_raw_request('POST', '/api/v5/account/set-leverage', body=body) ``` **关键字 fix**: 第二个位置参数是 `body=body`, 不是 `body`。 ### 实战命中 (本 session) - ETH 10→4x ✓ - BTC 10→5x ✓ - ZAMA 1→2x ✓ ### 关联 bug 58107 (cross 模式降杠杆拒) cross 模式降杠杆需要分账户余额 ≥ 新杠杆下要求的初始保证金。你 USDT 少时降杠杆会被拒: ``` {"code":"59108","msg":"Your account leverage is too low and has insufficient margins..."} ``` → fix 是先减仓 (释放保证金) 再降杠杆, 而不是用 isolated 模式 (会被先平再切的 OKX 流程影响跟单)。 ## 5. Qdrant recall 饱和 (已验证, 非新发现) 本 session Qdrant recall 反复召回相同 3 条 (4个熬鹰号白名单 + close也拦 + adjust_leverage_raw bug): - 蚂蚁减仓 session 期间 100+ 次召回都返回相同内容 → 召回已饱和 - 应对: acknowledge "Qdrant 召回已饱和, 依据实时 check_account 决策", 不再误以为新发现 ## 6. 本 session 重要事件时间线 | 时段 | 事件 | |---|---| | 9/26 早 | ZAMA 蚂蚁减仓 100+ 条, user 手动添加 1% min 减仓过滤 | | 9/26 午 | 4个熬鹰号白名单扩展 (user 原话"一个意思都是熬鹰的") | | 9/26 下午 | UNI long 2544 张@10x execute (advisor 报 811 张实际下 2544 张, advisor bug) | | 9/26 傍晚 | UNI 平仓 signal (advisor 报 21 张实际下 236 张, 减仓跟单) | | 9/26 晚 | ZEC long 13 张@3x, ZAMA long 2544 张@10x 同向持仓满仓 99% | ## 7. 与之前的 session 关系 - v4.5.96: advisor reduce 三种结果 (0.001张/方向bug/隐性失败) - v4.5.103: 4个熬鹰号首次识别为同一人, 调杠杆自动跟进 - v4.5.106: 100+ no-op 静默墙反思 + 20-轮状态总结 - v4.5.107: Qdrant 优先 + memory shorten-only + 工具能力不编造 - v4.5.109: "性价比低"完全去掉 + 当前全部持仓 + advisor 张数偏差矩阵 - v4.5.110 (上一续): 1% min 减仓过滤 - **v4.5.111 (本 session)**: 1% 过滤实装 + 4 熬鹰号扩展白名单 + adjust_leverage_raw bug fix + Qdrant 饱和应对 ## 8. 下次 session 期待 - trader 蚂蚁式减仓 → 1% 过滤拦截 95% 噪音, agent 算力能跑状态总结 - 4 熬鹰号白名单已稳定运行, 不需再扩展 - adjust_leverage_raw 已修复, 调杠杆信号能正确 set-leverage - update_only 信号类型已覆盖两种格式(实时更新+当前全部持仓)