> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 强制平仓

> 强平评估的对象是什么、何时触发，以及在你的仓位被接管之前协议会依次执行哪些步骤。

一个仓位再也盖不住它可能继续吃到的亏损，强制平仓就发生了。在 Intention 上，这是一次协议动作，不是一笔 keeper 交易——网络自己把仓位平掉，和其他一切处在同一个区块执行里。没有抢触发的竞赛，也没有要赢下的 gas 拍卖。

在讲机制之前，有两件事值得先弄清楚：**什么**会被强平，以及检查**什么时候**运行。

<h2 id="risk-units-not-accounts">
  评估的是风险单元，不是账户
</h2>

强平不看你的账户，它看的是**风险单元**——一组共用保证金资产、因而同涨同跌的仓位。

| 配置            | 风险单元           |
| ------------- | -------------- |
| 一个逐仓仓位        | 该仓位单独构成一个      |
| 同一市场下的逐仓多头与空头 | 两个彼此独立的单元      |
| 若干个全仓仓位       | 一个单元，共享账户保证金资产 |
| 全仓仓位加上一个逐仓仓位  | 两个单元，分别评估      |

大家容易忽略的后果是：**强平掉其中一个单元，不会碰到另一个**。逐仓的 BTC 仓位可以被强平，而你那个拿着 ETH 和 SOL 的全仓账户毫发无损——反过来也一样。逐仓是真隔离，而且两个方向都隔离。

<h2 id="the-margin-ratio">
  保证金占用率
</h2>

健康度用维持保证金占用率来表示：维持保证金要求当前占了你可用保证金的多大比例。

$$
\text{占用率} = \frac{\text{维持保证金}}{\text{净保证金资产}}
$$

**净保证金资产**是你的余额加上未实现盈亏，再减去已被占用的部分。**维持保证金**按每个仓位各自所在的档位算出来再相加——见[杠杆](/zh/trading/leverage#computing-the-requirement-yourself)。

| 占用率         | 状态                |
| ----------- | ----------------- |
| **低于 100%** | 仍有偿付能力，什么都不会触发    |
| **正好 100%** | 仍然有偿付能力——这条判定是严格的 |
| **高于 100%** | 强制平仓              |

这条边界值得说准，因为很容易想当然：触发强平，要求净保证金资产**严格低于**维持保证金要求。相等不强平。

<h3 id="a-worked-example">
  算一遍
</h3>

一个账户，两个风险单元，维持保证金率取 0.50%。全仓仓位共用保证金资产，放在一起评估；每个逐仓仓位单独评估。

|             | 全仓单元                             | 逐仓单元                                 |
| ----------- | -------------------------------- | ------------------------------------ |
| 仓位          | 5 ETH 多头，开仓价 4,000               | 0.1 BTC 空头，开仓价 100,000               |
| 标记价格        | 3,720                            | 109,000                              |
| 按标记价格计的名义价值 | 18,600                           | 10,900                               |
| 维持保证金       | 18,600 × 0.005 = **93.00**       | 10,900 × 0.005 = **54.50**           |
| 未实现盈亏       | (3,720 − 4,000) × 5 = **−1,400** | (100,000 − 109,000) × 0.1 = **−900** |
| 已分配的保证金资产   | 2,000，共享                         | 1,000，开仓时分配                          |
| 净保证金资产      | 2,000 − 1,400 = **600**          | 1,000 − 900 = **100**                |
| 占用率         | 93 / 600 = **15.5%**             | 54.5 / 100 = **54.5%**               |

两个单元离强平都还远，但安全程度并不一样，而且**这个账户没有单一的占用率**。逐仓那个仓位离自己的阈值近了三倍半，而且往账户里加保证金资产对它没用——逐仓保证金在开仓时就分配好了，只有给那个仓位[增加保证金](/zh/trading/add-margin)才能改变它的占用率。

这就是两种模式的实际差别。全仓把你的保证金资产汇到一起，一处的盈利抵得掉另一处的亏损；逐仓则把两个方向都关在里面。

<Warning>
  **没有警告区间，也没有分级限制**。占用率往上爬的时候，协议不会推送任何提醒，也不会在触及阈值之前就开始拒绝那些会加大风险的订单。唯一会改变什么的数值是 100%，一越过去，强制平仓立刻发生。

  这直接关系到你怎么定仓位规模。有的交易场所到 90% 就不让你再开仓，等于替你守住了一条你自己不必盯的底线。这里没有——占用率得你自己盯，而第一件发生的事就是强平本身。
</Warning>

维持保证金要求**按仓位规模分档**。仓位越大，越难在不推动市场的前提下平掉，所以要求按比例更高，最大杠杆更低。各市场的档位表发布在自己的[合约规格](/zh/trading/markets)里。

<h2 id="when-the-check-runs">
  检查何时运行
</h2>

协议不会每个区块扫描每一个账户，而是检查那些可能发生了变化的部分：

* **每次标记价格更新时**——全量扫描，因为一次价格波动可能让任何仓位陷入风险
* **每个区块**——检查自上次检查以来余额或仓位发生变化的账户：充值、提现、划转、成交和资金费
* **资金费结算时**——检查每一个被扣费的账户

成交不会逼着协议在同一区块内把成交账户再扫一遍，因为那笔订单被允许撮合之前，保证金就已经查过了。检查放在新信息出现的地方，不是到处都查。

<h2 id="the-sequence">
  处理流程
</h2>

风险单元一越过阈值，协议就走一套固定流程；单元一恢复健康，流程立刻停。

<div className="dg" data-dg="liquidation-sequence">
  <div className="dg-c" style={{aspectRatio:"720 / 494"}}>
    <svg className="dg-w" viewBox="0 0 720 494" aria-hidden="true">
      <path className="dg-wire dg-soft" d="M 34.00 157.00 L 34.00 168.60" />

      <path className="dg-head" d="M 34.00 175.00 L 29.60 168.60 L 38.40 168.60 Z" />

      <path className="dg-wire dg-soft" d="M 34.00 339.00 L 34.00 350.60" />

      <path className="dg-head" d="M 34.00 357.00 L 29.60 350.60 L 38.40 350.60 Z" />

      <path className="dg-wire dg-soft" d="M 34.00 409.00 L 34.00 420.60" />

      <path className="dg-head" d="M 34.00 427.00 L 29.60 420.60 L 38.40 420.60 Z" />
    </svg>

    <div className="dg-band" style={{left:"0.0000%",top:"18.2186%",width:"100.0000%",height:"31.1741%"}}><span className="dg-cap">就地恢复 — 单元一旦转好立即停止</span></div>
    <div className="dg-band" style={{left:"0.0000%",top:"55.0607%",width:"100.0000%",height:"44.9393%"}}><span className="dg-cap">被接管 — 亏损向外转移</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"0.0000%",top:"0.0000%",width:"100.0000%",height:"8.5020%"}}><span className="dg-t">净保证金资产严格低于维持保证金</span><span className="dg-s">相等不触发 — 判定是严格的</span></div>
    <div className="dg-b dg--green" style={{left:"1.9444%",top:"21.8623%",width:"5.5556%",height:"9.3117%"}}><span className="dg-t dg-ink--green">1</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"9.1667%",top:"21.8623%",width:"45.8333%",height:"9.3117%"}}><span className="dg-t">撤销该单元的全部挂单</span><span className="dg-s">普通挂单、条件单、止盈止损</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"57.2222%",top:"21.8623%",width:"40.8333%",height:"9.3117%"}}><span className="dg-s">被冻结的保证金回到单元</span></div>
    <div className="dg-b dg--green" style={{left:"1.9444%",top:"36.0324%",width:"5.5556%",height:"9.3117%"}}><span className="dg-t dg-ink--green">2</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"9.1667%",top:"36.0324%",width:"45.8333%",height:"9.3117%"}}><span className="dg-t">对向仓位互相冲销</span><span className="dg-s">仅对冲模式</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"57.2222%",top:"36.0324%",width:"40.8333%",height:"9.3117%"}}><span className="dg-s">同一市场的多空互相抵消</span></div>
    <div className="dg-b dg--yellow" style={{left:"1.9444%",top:"58.7045%",width:"5.5556%",height:"9.3117%"}}><span className="dg-t dg-ink--yellow">3</span></div>
    <div className="dg-b dg--yellow dg-left" style={{left:"9.1667%",top:"58.7045%",width:"45.8333%",height:"9.3117%"}}><span className="dg-t">由强制平仓接管</span><span className="dg-s">仓位在订单簿上被平掉</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"57.2222%",top:"58.7045%",width:"40.8333%",height:"9.3117%"}}><span className="dg-s">出场价格不再由你决定</span></div>
    <div className="dg-b dg--orange" style={{left:"1.9444%",top:"72.8745%",width:"5.5556%",height:"9.3117%"}}><span className="dg-t dg-ink--orange">4</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"9.1667%",top:"72.8745%",width:"45.8333%",height:"9.3117%"}}><span className="dg-t">保险基金吸收缺口</span><span className="dg-s">平仓仍不足以覆盖亏损时</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"57.2222%",top:"72.8745%",width:"40.8333%",height:"9.3117%"}}><span className="dg-s">由基金承担，而不是由对手方承担</span></div>
    <div className="dg-b dg--orange" style={{left:"1.9444%",top:"87.0445%",width:"5.5556%",height:"9.3117%"}}><span className="dg-t dg-ink--orange">5</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"9.1667%",top:"87.0445%",width:"45.8333%",height:"9.3117%"}}><span className="dg-t">自动减仓</span><span className="dg-s">仅当基金也无法覆盖</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"57.2222%",top:"87.0445%",width:"40.8333%",height:"9.3117%"}}><span className="dg-s">对向的盈利仓位被减仓</span></div>
    <div className="dg-free" style={{left:"9.1667%",top:"11.3360%",width:"45.8333%"}}><div className="dg-n">协议做什么</div></div>
    <div className="dg-free" style={{left:"57.2222%",top:"11.3360%",width:"40.8333%"}}><div className="dg-n">你付出什么</div></div>
  </div>
</div>

**先撤单**。未成交的订单占着保证金，撤掉就把这部分额度还回来了；账户只是保证金吃紧、还没到资不抵债，往往这一步就够。范围跟着风险单元走：逐仓仓位撤该市场该方向的订单，全仓账户则全撤。

**然后轧差**。账户在全仓模式下同时拿着同一市场的多头和空头，这两个仓位就相互抵消——小的那边冲大的那边。两条腿都付吃单手续费，也都各自出现在成交历史里，所以手续费和已实现盈亏能按腿归属。

**然后接管**。单元还是不够，协议就在订单簿上把仓位平掉，以破产价格为界——也就是仓位剩余保证金刚好耗尽的那个价格。

**接着是保险基金**：一笔由强平罚金注入的协议状态，订单簿盖不住的部分由它吸收。

**最后是**[**自动减仓**](/zh/trading/adl)，最后手段，用在保险基金也盖不住的时候。

<Note>
  第 1 步和第 2 步是自救，这也是为什么账户可以越过阈值又回到安全区，全程没有任何仓位被协议平掉。顺带也解释了你的挂单为什么会在剧烈行情里消失：撤单是协议最先做的事。
</Note>

<h2 id="reducing-your-odds">
  降低被强平的概率
</h2>

* **盯占用率，别盯价格**：离强平还有多远，看的是保证金，不是价格已经走了多少。
* **占用率得你自己盯**：没有任何提醒，一路加风险也没有任何东西拦你，所以你留在手上的保证金余量，就是唯一的缓冲。
* **弄清是哪个单元在承压**：混合模式下，真正该看的，是你担心的那个仓位所在单元的占用率。
* **按档位控制规模**：跨进更高的档位，维持保证金要求就上去了；别的条件一点没变，强平价格也会朝对你不利的方向挪。

<Warning>
  强制平仓不是止损，也不保证成交价格。行情走得快，仓位可能远远越过破产价格才平掉；超出你保证金的那部分亏损由保险基金承担，保险基金也不够，就通过[自动减仓](/zh/trading/adl)摊给其他交易者。见[风险披露](/zh/protocol/security/risks)。
</Warning>

<h2 id="reading-the-live-values">
  实时取值从哪里读
</h2>

本页的每一个数字都是链上的按市场配置，不是协议常量。驱动它们的参数：

| 参数                                               | 决定                                                                          |
| ------------------------------------------------ | --------------------------------------------------------------------------- |
| `mm_leverage`、`exponent`、`maintenance_deduction` | 每一档的维持保证金要求——见[杠杆](/zh/trading/leverage#computing-the-requirement-yourself) |
| `liquidation_fee_rate_ppm`                       | 对被强平仓位收取的罚金                                                                 |

它们发布在各市场的[合约规格](/zh/trading/markets)里，也可以直接从链上读。集成如果把它们写死，迟早会算出一个网络并没有在用的数字——见[开发者](/zh/developers/overview)。

<h2 id="where-to-go-next">
  后续阅读
</h2>

<CardGroup cols={2}>
  <Card title="自动减仓" href="/zh/trading/adl">
    保险基金无法吸收缺口时会发生什么。
  </Card>

  <Card title="保证金模式" href="/zh/trading/margin-modes">
    全仓与逐仓如何决定风险单元的构成。
  </Card>

  <Card title="增加保证金" href="/zh/trading/add-margin">
    在逐仓仓位触及阈值之前给它补仓。
  </Card>

  <Card title="标记价格" href="/zh/trading/mark-price">
    保证金占用率所依据的价格。
  </Card>
</CardGroup>
