> ## 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関数：** この関数により、トレーダーは対象となるポジションの清算を開始し、清算手数料を獲得する機会を得ることができます。

**清算のケース：**

ポジションの状態に応じて2つの異なるケースがあります。いずれの場合も、ポジション全体の清算が必要です。

#### 1) ポジションのエクイティが正またはゼロの場合

ポジションは、最悪価格を破産価格に設定した成行注文で売却されます。ポジション全体を破産価格を最悪価格として清算できない場合にのみ、清算者は指値注文を送信する必要があります。

**メリット**

* ポジションが破産していない場合、保険基金への損失がゼロであることが保証されます。
* 既存のオーダーブックの流動性が使用され、清算者は破産価格までの潜在的なディスカウント（裁定取引）によって清算を行うインセンティブを維持します。

**デメリット**

* 破産価格での引き受けは、特にMark Priceが破産価格に非常に近い場合、清算者にとって十分に魅力的でない可能性があります。
  * この懸念は、Injectiveに現在存在するように、少なくとも1人の「ホワイトナイト」清算者が常に存在すると仮定すれば軽減されます。

**例**

維持マージン比率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 ≤ Oracle Price ≤ $8.42 の場合に清算可能であり、エクイティが非負です。

清算者は、最悪価格\$8の成行注文でオーダーブック上でポジションを売却できる場合に清算を実行できます。

清算者は、清算に参加したい場合は独自の注文を提出することもできますが、オーダーブックに十分な流動性がある場合は必須ではありません。オーダーブックに十分な流動性がない場合は、清算者が清算の一部として使用される独自の注文（価格は\$8以上でなければならない）を提出する必要があります。

#### 2) ポジションのエクイティが負の場合

ポジションは、最悪価格をOracle Priceに設定した成行注文で売却されます。ポジション全体をOracle Priceを最悪価格として清算できない場合にのみ、清算者は指値注文を送信する必要があります。

**メリット**

* 保険基金が極端な価格でのポジションの成行売却による制御不能な損失を被ることがありません。代わりに、保険基金はOracle Priceの変動に基づいてのみ資本を失います。

**デメリット**

* 正のエクイティの場合と同様（ただしさらに悪い状況）、Oracle Priceでのポジションの引き受けは、暗黙の裁定機会がないため、清算者にとってまったく魅力的でない可能性があります。これにより清算が遅延する可能性があります。

**例**

以下のロングポジションを考えてみましょう。

<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>

このポジションは、Oracle Price \< $8 の場合にエクイティが負になります。Oracle Priceが$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の清算メカニズムに参加して潜在的な利益機会を獲得することができます。
