Hyperliquid中 totalMarginUsed 这个字段的含义

让我详细解释 totalMarginUsed 的计算方法:

totalMarginUsed 的定义

totalMarginUsed = 维持所有当前持仓所需的保证金总额

您的数据:
totalMarginUsed: $3,085,682.44

计算公式

基本公式

totalMarginUsed = Σ(每个持仓的 marginUsed)

单个持仓的 marginUsed 计算

对于全仓模式 (Cross Margin)

marginUsed = positionValue / leverage

# 或者更精确:
marginUsed = abs(entryPx × szi) / leverage

对于逐仓模式 (Isolated Margin)

marginUsed = 初始保证金 ± 未实现盈亏 + 缓冲金额

从您的数据验证

让我抽取几个持仓详细计算:

示例 1: BTC (全仓20x)

持仓数据:
- szi: -13.10863
- entryPx: $110,212.0
- leverage: 20x (全仓)
- positionValue: $1,459,527.97
- marginUsed: $72,976.40

计算验证:
marginUsed = positionValue / leverage
          = $1,459,527.97 / 20
          = $72,976.40 ✓ 完全匹配!

示例 2: ETH (全仓20x)

持仓数据:
- szi: -362.4764
- entryPx: $3,891.63
- leverage: 20x
- positionValue: $1,436,203.99
- marginUsed: $71,810.20

计算验证:
marginUsed = $1,436,203.99 / 20
          = $71,810.20 ✓ 匹配!

示例 3: ATOM (全仓5x)

持仓数据:
- szi: 36,132.36
- entryPx: $3.6109
- leverage: 5x
- positionValue: $114,810.57
- marginUsed: $22,962.11

计算验证:
marginUsed = $114,810.57 / 5
          = $22,962.11 ✓ 匹配!

示例 4: CELO (逐仓3x) - 特殊情况

持仓数据:
- leverage: {'type': 'isolated', 'value': 3, 'rawUsd': '13.402335'}
- positionValue: $10.09
- marginUsed: $23.49

计算:
基础保证金 = $10.09 / 3 = $3.36
实际 marginUsed = $23.49

为什么差这么多?
逐仓模式的 marginUsed 包含:
1. 初始保证金: $13.40 (rawUsd)
2. 未实现盈亏: -$0.042
3. 维持保证金缓冲
4. 其他费用累积

完整计算 totalMarginUsed

# 从您的130+个持仓中累加
totalMarginUsed = (
    # 主要持仓
    72976.40      # BTC
    + 71810.20    # ETH  
    + 22962.11    # ATOM
    + 21810.95    # DYDX
    + 22731.04    # SOL
    + 30027.91    # AVAX
    + 21808.89    # BNB
    + 19818.58    # APE
    + ...         # 其余 120+ 个持仓
    + 23.49       # CELO (逐仓)
    + 390.96      # MON (逐仓)
    + 77729.09    # MET (逐仓)
)

= $3,085,682.44

不同杠杆倍数的影响

相同名义价值,不同杠杆的保证金需求:

持仓价值: $100,000

5x 杠杆:  marginUsed = $100,000 / 5  = $20,000
10x 杠杆: marginUsed = $100,000 / 10 = $10,000
20x 杠杆: marginUsed = $100,000 / 20 = $5,000
40x 杠杆: marginUsed = $100,000 / 40 = $2,500

高杠杆 → 低保证金占用 → 高风险!

marginUsed 的组成部分

1. 初始保证金 (Initial Margin)

初始保证金 = positionValue / leverage

例如 BTC:
= $1,459,527.97 / 20
= $72,976.40

2. 维持保证金 (Maintenance Margin)

维持保证金 < 初始保证金

# Hyperliquid 的维持保证金率通常是初始保证金的 50%
维持保证金 ≈ 初始保证金 × 0.5

BTC 维持保证金 ≈ $72,976.40 × 0.5 = $36,488.20

3. 全仓 vs 逐仓的区别

全仓模式

# 所有全仓持仓共享账户资金
crossMarginSummary.totalMarginUsed: $3,007,538.90

特点:
- 爆仓风险共担
- 一个持仓爆仓可能影响所有持仓
- 资金使用效率高

逐仓模式

# 每个逐仓持仓独立核算
CELO marginUsed: $23.49
MON marginUsed:  $390.96  
MET marginUsed:  $77,729.09

逐仓总计 ≈ $78,143.54

特点:
- 风险隔离
- 单个持仓爆仓不影响其他
- 资金使用效率较低

验证:

totalMarginUsed = 全仓保证金 + 逐仓保证金
$3,085,682.44 =? $3,007,538.90 + $78,143.54
$3,085,682.44 ≈ $3,085,682.44 ✓

动态变化示例

场景1: 价格波动不改变 marginUsed(全仓)

BTC 持仓 (全仓20x):
初始状态:
- positionValue: $1,459,527.97
- marginUsed: $72,976.40

BTC 价格下跌 5%:
- 新 positionValue: $1,386,551.57
- marginUsed: 仍然 $72,976.40 (不变!)

原因: 全仓模式下,marginUsed 基于初始持仓价值和杠杆
除非调整杠杆或加减仓,否则不会改变

场景2: 逐仓模式下 marginUsed 会变化

MET 持仓 (逐仓3x):
初始状态:
- marginUsed: $77,729.09
- unrealizedPnl: +$3,235.41

价格下跌导致亏损:
- 新 unrealizedPnl: -$5,000
- 新 marginUsed: $77,729.09 + 损失增加

原因: 逐仓需要追加保证金维持持仓

marginUsed vs 其他保证金字段

对比理解:

totalMarginUsed: $3,085,682
├─ 初始保证金需求 (Initial Margin Required)
└─ 实际占用的账户资金

crossMaintenanceMarginUsed: $1,478,344
├─ 维持保证金需求 (Maintenance Margin)
└─ 低于此值会触发强平

关系:
crossMaintenanceMarginUsed < totalMarginUsed
$1,478,344 < $3,085,682 ✓

安全边际:
= totalMarginUsed - maintenanceMargin
= $3,085,682 - $1,478,344
= $1,607,338 (缓冲空间)

实际应用:计算可开仓空间

可用于新开仓的保证金:
= accountValue - totalMarginUsed
= withdrawable
= $3,804,648.64

如果想开 10x 杠杆的新仓:
最大可开仓位价值 = $3,804,648.64 × 10
                 = $38,046,486

如果想开 20x 杠杆:
最大可开仓位价值 = $3,804,648.64 × 20
                 = $76,092,973

Python 计算示例

def calculate_margin_used(position):
    """
    计算单个持仓的 marginUsed
    """
    if position['leverage']['type'] == 'cross':
        # 全仓模式
        margin_used = position['positionValue'] / position['leverage']['value']
    else:
        # 逐仓模式(直接从数据读取,计算复杂)
        margin_used = position['marginUsed']
    
    return margin_used

def calculate_total_margin_used(positions):
    """
    计算所有持仓的总保证金
    """
    total = sum(calculate_margin_used(pos) for pos in positions)
    return total

# 验证
your_positions = [...] # 130+ 个持仓
calculated_total = calculate_total_margin_used(your_positions)
print(f"计算的 totalMarginUsed: ${calculated_total:,.2f}")
print(f"API 返回的 totalMarginUsed: $3,085,682.44")

总结

totalMarginUsed = $3,085,682.44 表示:

  1. 定义: 维持所有当前持仓所需的保证金总和

  2. 计算方式:

    = Σ(每个持仓的 positionValue / leverage)
    = $72,976 (BTC) + $71,810 (ETH) + ... (共130+个持仓)
    
  3. 组成:

    • 全仓保证金: $3,007,538.90 (98.7%)

    • 逐仓保证金: $78,143.54 (1.3%)

  4. 关键特征:

    • 杠杆越高,marginUsed 越低

    • 全仓模式下价格波动不改变 marginUsed

    • 代表您实际锁定无法提现的资金

  5. 风险指标:

    使用率 = totalMarginUsed / accountValue
           = $3,085,682 / $7,117,223
           = 43.4% ← 您的风险使用率
    

这是管理风险和计算可用保证金的核心指标!