自动减仓 (ADL - Auto-Deleveraging)
自动减仓(Auto-Deleveraging, ADL)是在发生强制平仓且保险基金不足以弥补损失时,系统为了保护整体用户利益,从对手方中根据排名挑选出盈利且高杠杆的仓位进行减仓的机制。
ADL 触发条件
ADL 只在以下情况下触发:
- 发生强制清算
- 清算价格劣于破产价格,产生穿仓损失
- 保险基金余额不足以弥补损失
ADL 排名机制
ZTDX 使用以下公式计算用户的 ADL 排名分 数:
ADL Score = (PnL Weight × PnL %) + (Leverage Weight × Leverage) + (Size Weight × Normalized Size)
排名规则
- 只有盈利仓位 才会进入 ADL 队列
- 排名分数越高,被减仓的优先级越高
- 同一市场的多空两侧分别排名
- 减仓时从对手方(与被清算方相反方向)的队列顶部开始
权重配置
| 因子 | 权重 | 说明 |
|---|---|---|
| PnL % | 40% | 未实现盈亏百分比 |
| Leverage | 30% | 杠杆倍数 |
| Size | 30% | 仓位大小(归一化) |
优先级指标 (Risk Indicator)
系统提供 risk_indicator 字段,帮助用户识别被 ADL 的风险。
| 级别 | 颜色 | 风险 | 排名范围 | 说明 |
|---|---|---|---|---|
| 5 | 🔴 红色 | 极高 | Top 0-20% | 极大概率被 ADL |
| 4 | 🟠 橙色 | 高 | 20-40% | 高概率被 ADL |
| 3 | 🟡 黄色 | 中 | 40-60% | 可能被 ADL |
| 2 | 🟢 绿色 | 低 | 60-80% | 较少被 ADL |
| 1 | 🔵 蓝色 | 极低 | 80-100% | 基本不会被 ADL |
获取 ADL 配置
接口信息
- Method:
GET - Path:
/api/v1/adl/:symbol/config - Authentication: 不需要
路径参数
| 参数 | 类型 | 必须 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 交易对名称(如 BTCUSDT) |
响应示例
{
"symbol": "BTCUSDT",
"pnl_weight": "0.40",
"leverage_weight": "0.30",
"size_weight": "0.30",
"min_pnl_percentage": "0.01",
"enabled": true,
"updated_at": "2024-01-01T00:00:00Z"
}
响应字段说明
| 字段 | 类型 | 描述 |
|---|---|---|
| symbol | string | 交 易对 |
| pnl_weight | string | PnL 权重 |
| leverage_weight | string | 杠杆权重 |
| size_weight | string | 仓位大小权重 |
| min_pnl_percentage | string | 最小盈利百分比(进入队列门槛) |
| enabled | boolean | 是否启用 ADL |
| updated_at | string | 更新时间 |
获取 ADL 排名
接口信息
- Method:
GET - Path:
/api/v1/adl/:symbol/rankings - Authentication: 不需要
路径参数
| 参数 | 类型 | 必须 | 描述 |
|---|---|---|---|
| symbol | string | 是 | 交易对名称(如 BTCUSDT) |
查询参数
| 参数 | 类型 | 必须 | 描述 |
|---|---|---|---|
| side | string | 是 | 方向(long/short) |
| limit | number | 否 | 返回数量(默认 50) |
响应示例
{
"market_symbol": "BTCUSDT",
"side": "long",
"rankings": [
{
"rank": 1,
"user_address": "0x742d...0beb",
"position_size": "10000.00",
"leverage": 50,
"pnl_percentage": "25.5",
"adl_score": "85.2",
"risk_indicator": 5
},
{
"rank": 2,
"user_address": "0x123d...0abc",
"position_size": "8000.00",
"leverage": 40,
"pnl_percentage": "20.0",
"adl_score": "78.5",
"risk_indicator": 5
}
]
}