> For the complete documentation index, see [llms.txt](https://ch-docs.aftermath.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ch-docs.aftermath.finance/yong-xu-he-yue/architecture/liquidations.md).

# 清算

## 概览

我们的永续合约交易所实现了一套稳健的多层清算与损失缓释系统，旨在有效处置资不抵债的仓位，同时把对健康交易者的影响降到最低。清算人可以自由选择在订单簿上卖出，或自己持有被清算的头寸。当盘口价格优于强制平仓（清算）价格时，清算人自然有动力在订单簿上卖出被清算的头寸。

缓释策略由三层递进级联组成：<br>

* 保险基金兜底
* 损失分摊
* 自动减仓（ADL）

当仓位的保证金跌破**维持保证金要求**时进入清算。可能的原因包括：

* \*\*价格变动：\*\*指数价格向不利于用户的方向变动，未实现 PnL（盈亏）侵蚀保证金。
* \*\*资金费用：\*\*如果账户处于资金费率的支付方，持续的资金费用会减少保证金资产余额。

{% hint style="info" %}
如果提取保证金资产或下单会突破初始保证金要求，系统会直接阻止这些操作，因此它们本身不会触发清算。
{% endhint %}

***

## 标记价格

为防止市场操纵（例如在单一交易所“插针”），我们使用标记价格而非现货指数价格来判定清算触发。\
其中：

$$
{\small
\begin{align\*}
\small
& MarkPrice = median(BookPrice, FundingPrice, TwapPrice)
\\
\&FundingPrice = IndexPrice + \text{TWA}*{1m,1h}(BookPrice - IndexPrice) \cdot \frac{\text{Time to next Funding}}{ \text{Funding Period}}
\\
\&TwapPrice = IndexPrice + \text{TWA}*{5s,5m}(BookPrice - IndexPrice)
\end{align\*}
}%
$$

*（TWA 的详细定义见*[*资金费率*](/yong-xu-he-yue/architecture/funding.md)*一章。）*

***

## 清算流程

我们的系统是**无许可**的，任何参与者都可以清算资不抵债的仓位。流程以恢复仓位健康为优先，而非全部平掉。

### 部分清算

与整仓平掉不同，我们只清算恢复仓位健康所需的最小数量。

* **目标：将仓位削减至回到该市场的最大初始杠杆**（例如把 50 倍的仓位恢复到 10 倍）。
* \*\*清算人角色：\*\*清算人按标记价格立即接手被清算的部分，之后可根据自身策略选择立即平掉或继续持有。

### 清算费用

清算事件中会收取三种费用，用于激励 Keeper（执行机器人）并保护协议。这些费用由市场管理员配置：

| 费用类型      | 接收方  | 说明                                        |
| --------- | ---- | ----------------------------------------- |
| **清算费**   | 清算人  | 执行清算的激励。                                  |
| **强制撤单费** | 清算人  | 当被清算仓位存在挂单时收取，按被撤销数量的一定百分比计，通常比清算费低一个数量级。 |
| **保险基金费** | 保险基金 | 一笔较小的费用，直接流入该市场的独立保险基金。                   |

***

## 系统安全与坏账

如果清算无法及时完成，仓位跌破破产价格并产生坏账，系统会通过**三层安全机制**的递进级联来化解。

{% stepper %}
{% step %}

#### 第一层：保险基金

这是第一道防线。

* **结构：每个市场维护自己的独立**保险基金。
* \*\*来源：\*\*由正常清算中收取的保险基金费注入。
* \*\*影响：\*\*如果坏账能由该基金覆盖，**其他交易者不受任何影响**。
  {% endstep %}

{% step %}

#### 第二层：损失分摊

如果保险基金耗尽，但坏账仍在既定阈值之内，损失将被**分摊**。

* \*\*机制：\*\*损失按比例分配给市场对手方向上的所有仓位。
* **结算：坏账金额被加入对手方仓位的资金费率**，在这些仓位触发资金费率更新时结算。
* \*\*安全性：\*\*阈值设计确保健康仓位不会因承担过多分摊债务而自身沦为可清算状态。
  {% endstep %}

{% step %}

#### 第三层：自动减仓（ADL）

在极端场景下（例如疑似操纵或大规模资不抵债），系统会触发\*\*自动减仓（ADL）\*\*作为最终手段。

* \*\*机制：\*\*对手方向上盈利最高的仓位会按破产价格自动与该坏账仓位对冲平仓。
* \*\*为什么用 ADL？\*\*相比把巨额损失分摊给整个市场，平掉特定的高盈利仓位被认为更加公平。
* \*\*许可模式：\*\*ADL 由市场管理员执行，以便在复杂的边缘情况下做出判断，但执行结果在链上完全可验证。

{% hint style="info" %}
注意：即使损失分摊仍可用，市场管理员也可以随时触发 ADL 以维护市场健康。
{% endhint %}

完整细节见 [ADL](/yong-xu-he-yue/architecture/liquidations/adl.md) 文档。
{% endstep %}
{% endstepper %}
