> ## Documentation Index
> Fetch the complete documentation index at: https://injectivelabs-docs-tokenization-section.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 执行清算

本指南详细介绍了交易者如何在 Injective 上使用 `MsgLiquidatePosition` 函数来清算水下仓位。

**在继续之前，请确保你了解以下内容：**

* **清算机制：** Injective 采用动态清算机制，当仓位超过特定的抵押率（即低于阈值）时，任何市场参与者都可以对其进行清算。执行清算有收益，但需要大量的前期资金。
* **MsgLiquidatePosition 函数：** 此函数允许交易者对符合条件的仓位发起清算，为他们提供获取清算费用的机会。

**清算的不同情况：**

根据仓位状态，有两种不同的情况。在两种情况下，都需要清算整个仓位。

#### 1) 仓位具有正权益或零权益

仓位将使用市价单出售，最差价格等于破产价格。只有当整个仓位无法使用破产价格作为最差价格进行清算时，清算人才需要提交限价单。

**优点**

* 当仓位未破产时，保险基金保证零损失。
* 使用现有订单簿流动性，清算人仍有动力通过获得仓位折扣（最高至破产价格）来进行清算（套利）。

**缺点**

* 以破产价格接管可能对清算人没有足够的吸引力，特别是当标记价格非常接近破产价格时。
  * 如果假设总会有至少一个"白骑士"清算人（目前 Injective 上确实存在），这种担忧就会得到缓解。

**示例**

考虑以下在维持保证金率为 5% 的市场中的多头仓位。

<table><thead><tr><th width="120">数量</th><th>入场价格</th><th>保证金</th><th>清算价格</th><th>破产价格</th></tr></thead><tbody><tr><td>1</td><td>10</td><td>2</td><td>8.42</td><td>8</td></tr></tbody></table>

当 $8 ≤ 预言机价格 ≤ $8.42 时，该仓位可被清算且具有非负权益

如果仓位可以使用最差价格为 \$8 的市价单在订单簿上出售，清算人就可以清算该仓位。

如果清算人希望参与清算，可以选择提交自己的订单，但如果订单簿已有足够的流动性，这不是必需的。如果订单簿没有足够的流动性，则要求清算人提交自己的订单（价格必须 ≥ \$8）作为清算的一部分。

#### 2) 仓位具有负权益

仓位将使用市价单出售，最差价格等于预言机价格。只有当整个仓位无法使用预言机价格作为最差价格进行清算时，清算人才需要提交限价单。

**优点**

* 保险基金永远不会因以极端价格市价出售仓位而遭受不可控的损失。相反，保险基金仅根据预言机价格变动损失资金。

**缺点**

* 与正权益情况类似（但更糟），以预言机价格接管仓位可能对清算人完全没有吸引力，特别是现在没有隐含套利。这可能导致清算延迟。

**示例**

考虑以下多头仓位。

<table><thead><tr><th width="115">数量</th><th>入场价格</th><th>保证金</th><th>清算价格</th><th>破产价格</th></tr></thead><tbody><tr><td>1</td><td>10</td><td>2</td><td>8.42</td><td>8</td></tr></tbody></table>

当预言机价格 \< $8 时，该仓位具有负权益。假设预言机价格为 $7.50。

如果仓位可以使用最差价格为 \$7.50 的市价单在订单簿上出售，清算人就可以清算该仓位。

与上述情况类似，如果清算人希望参与清算，可以选择提交自己的订单，但如果订单簿已有足够的流动性，这不是必需的。如果订单簿没有足够的流动性，则要求清算人提交自己的订单（价格必须 ≥ \$7.50）作为清算的一部分。

**清算仓位的步骤：**

1. **识别可清算仓位：** 使用 Injective 的 `LiquidablePositions` 端点来识别抵押率低于清算阈值的仓位。相关数据点包括：

   * **抵押品：** 作为仓位抵押品存入的代币总价值。
   * **负债：** 仓位中借入代币的总价值。
   * **清算阈值：** 避免清算所需的最低抵押率。

   示例可以在 [Go](https://github.com/InjectiveLabs/sdk-go/blob/master/examples/exchange/derivatives/20_LiquidablePositions/example.go) 和 [Python](https://github.com/InjectiveLabs/sdk-python/blob/master/examples/exchange_client/derivative_exchange_rpc/23_LiquidablePositions.py) 中找到。
2. **准备清算交易：** 使用 `MsgLiquidatePosition` 函数构建订单交易，指定 [API 文档](https://api.injective.exchange/?python#derivatives-msgliquidateposition) 中列出的参数。虽然不是强制性的，但强烈建议使用限价交易而非市价交易。

注意，执行清算需要限价单。通过遵循这些步骤并考虑上述因素，做市商可以有效地使用 `MsgLiquidatePosition` 函数参与 Injective 的清算机制并获取潜在的盈利机会。
