这是整个系统最核心的模块。所有计算公式必须与 HL 保持 95% 以上一致。
所有计算必须与 HL 精度对齐,从 HL meta API 获取并缓存:
| 参数 | 来源 | 说明 |
|---|---|---|
| 价格精度(szDecimals) | HL /info meta API |
每币种不同,BTC=1位,小币种 0–4 位 |
| 数量步进 | HL /info meta API |
最小下单量和步进值 |
| 维持保证金率分级表 | HL /info meta API |
按仓位大小分级,大仓位维保率更高 |
精度规则每小时同步一次(与 HL 合约元数据同步周期一致)。
每个仓位分配独立保证金,清算互不影响。
初始保证金 = 名义价值 / 杠杆
= size × entry_price / leverage
HL 的维保率按仓位大小分级,从 HL meta API 获取:
示例(BTC):
名义价值 < $100K → 维保率 0.4%
名义价值 $100K–$1M → 维保率 0.6%
名义价值 > $1M → 维保率 1.0%
必须从 HL API 获取实际分级表,不可硬编码。
逐仓多头:
清算价 = entry_price × (1 - (margin - 累计资金费支出) / notional + maintenance_rate)
逐仓空头:
清算价 = entry_price × (1 + (margin - 累计资金费支出) / notional - maintenance_rate)
说明:
margin = 初始保证金 + 用户追加的保证金累计资金费支出 = 自开仓以来已结算的资金费净额(多头付出的资金费会侵蚀保证金)maintenance_rate 根据当前名义价值查分级表当 (仓位保证金 + 仓位未实现 PnL) ≤ 名义价值 × 维持保证金率
→ 触发该仓位清算
→ 其他仓位不受影响
所有全仓仓位共享账户余额,一个仓位的盈亏影响其他仓位的清算线。
账户权益 = 钱包余额 + Σ(所有全仓仓位未实现 PnL)
全仓维持保证金需求 = Σ(各全仓仓位名义价值 × 对应维保率)
账户权益 ≤ 全仓维持保证金需求
→ 触发账户级清算
用户可同时持有逐仓和全仓仓位:
可用余额 = 钱包余额 - Σ(逐仓仓位保证金) + Σ(全仓仓位未实现盈亏)
适用于 INTERNAL 和 HYPERLIQUID 两种仓位,平台 是唯一清算主体。
| 仓位类型 | 执行方式 | 平台盈亏 |
|---|---|---|
| INTERNAL | L3 内部结算,按 mark price | 平台赚取用户保证金(80/20 分配) |
| HYPERLIQUID | 向 HL 发市价平仓 → 等回执 → 按 close_price 结算 | 无额外客损 |
用户保证金归零
已实现 PnL 记录
INTERNAL 客损分配:
80% → 平台利润账户
20% → 风险准备金
仓位状态 → LIQUIDATED
推送清算通知给用户