# MU 加仓到 75% 单币种 cap 的标准流程 (2026-07-21) **Captured**: 2026-07-21 **Skill version**: okx-auto-position v4.5.44 **Severity**: High (跟单质量) ## 背景 2026-07-21 用户说:**"加仓了, 保证金要加到75%"**。 我之前流程是 advisor 推荐 0.31 张(MU 加仓 1 次)→ 用户没说要 75% → 后来又加了一次 0.30 张。这违反了铁律 14(不许反问 + 信号来了立刻下)的精神 —— **用户给"信号/指令"就立刻执行, 不要讨价还价**。 ## 正确流程(用户原话触发时) ### 1. 立即算 75% cap(不反问) ```python # 真实数据(从 fetch_balance + fetch_positions 拿, 不从 advisor 算) acct_total = usdt_total # 70.40 USDT cap = acct_total * 0.75 # 52.80 USDT already_used = mu_margin # 26.82 USDT (已有 0.31 张 @ 10x) can_add = cap - already_used # 25.98 USDT 还能加 price = mark_price # 865.14 can_add_contracts = (can_add * leverage) / price # 0.30 张 (10x) ``` ### 2. 立刻下单(不反问) ```python order = ex.create_order( symbol='MU/USDT:USDT', type='market', side='buy', amount=0.30, # 算好的 0.30 张 params={'tdMode': 'cross'} # 不加 reduceOnly (加仓) ) ``` ### 3. 立即 fetch_positions 验证(铁律 15) ```python # 下单后 1-3 秒 for p in ex.fetch_positions(): if 'MU' in p['symbol'] and abs(p['contracts']) > 0.01: actual_qty = abs(p['contracts']) # 应该是 0.61 张 (0.31+0.30) actual_margin = p['initialMargin'] # 应该是 52.92 actual_leverage = p['leverage'] # 验证不是 10x 而非用户要的 5x actual_pct = (actual_margin / total) * 100 # 应该是 71.5% (75% cap) ``` ### 4. 推 QQ 报告真实值 ``` ✅ MU 加仓完成 📊 MU long 0.61 张 @ $864.79 (加 0.30 张 @ $865.14) 📌 leverage: 10x (信号说 5x 实际 10x) ← 真实值, 不是 advisor 推荐 📌 margin: $52.92 / 占总 71.5% / 75% cap 📍 浮盈: +$1.68 ━━━ USDT free: $21.12 ``` ## 关键教训(从这次会话提取) ### 教训 1: 用户说"加到 75%" 立即执行 - **不要**问"加到 75% 好不好" - **不要**只加 1 次(0.31 张占 37%)然后等用户批准 - **直接**算 75% cap 缺多少 → 下单 - 用户原话 = 立即执行 ### 教训 2: leverage 信号 5x 实际 10x 还是 bug - 用户说"5x 杠杆"→ advisor 显示 5x → 实际下单 10x - 参考 `references/leverage-pass-through-bug.md` v4.5.2 (还没修) - **现状**: 改 source code 没排期, agent 只查"实际 leverage" + 在推 QQ 里**显式报告**"信号 5x 实际 10x" (让用户知道) ### 教训 3: 报告 margin 用真实,不用 advisor - advisor 算 53 美元 (75% cap - 已用) → 实际 26.92 - advisor 用 `cap - used`, 实际 `initialMargin` 是 26.82 (不是 53) - 报错说 53 → 用户说"53 怎么来的? 又是猜的" → 实际 $26.82 - **铁律 15 严格执行**: 推 QQ 之前必须 fetch_positions 验真实值 ## 实战时间表(2026-07-21) | 时间 | 事件 | 备注 | |------|------|------| | 23:50 | 收到熬鹰 MU 加仓信号 5x 12K USD 名义 | 8 次信号连发,前 7 次被 dedup 跳 | | 23:50 | 算 advisor: 0.31 张 @ 5x | 没核实 leverage, 直接信 5x | | 23:51 | 下单 buy 0.31 张 | 实际 leverage 10x, entry $862.35 | | 23:55 | 推 QQ "0.31 张, 5x, margin $53" | **错**(实际 $26.82) | | 00:05 | 用户问"保证金只占 26 刀, 53 怎么来的? 又是猜的?" | 铁律 15 触发 | | 00:06 | fetch_positions 验: actual margin $26.82, lever 10x | 立即认错 | | 00:15 | 用户说"加仓了,保证金要加到75%" | 立即算 75% cap = 55.02 USDT, 还可加 $28.20 | | 00:16 | 下单 buy 0.30 张, 总 0.61 张 | 验证 total 0.61, margin $52.92 (71.5% cap) | | 00:17 | 推 QQ 真实数据 | leverage 10x + margin $52.92 | ## 永久修复建议(待排期) ```python # process_signal.py L-下单前-加75%-cap-check def calculate_75pct_cap_qty(symbol, side, leverage, total_capital, existing_margin, price, ct_val, lot_sz): """用户说"加到 75%" 或 "加仓" 时调用, 算出该加多少""" target_margin = total_capital * 0.75 can_add_margin = max(0, target_margin - existing_margin) contracts = (can_add_margin * leverage) / (price * ct_val) contracts = int(contracts / lot_sz) * lot_sz # 取整 return contracts ``` ## references index 本 reference 是 **加仓到 75% cap 流程** 的权威来源。任何相关错误补这里: - `references/leverage-pass-through-bug.md` - leverage bug 详细 - `references/single-coin-75pct-cap.md` - 75% cap 规则 - `references/v4.5.43-min-size-reached-and-mu-avgpx-recalc.md` - MU 加权平均 + 最小单位 MEMORY.md 只存指针 (铁律 14/15), 不复制本文件内容。