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

# 只减仓（Reduce Only）

> 一个标志位，保证订单只能缩小仓位，永远不会开仓或反手——外加仓位变化时维持这一承诺的自动裁剪机制。

只减仓（Reduce Only）是你挂在订单上的一个标志位。它保证这笔订单只能减少已有仓位——永远不会开新仓、不会加仓，也不会把你翻到另一边。

它防的是一个具体而昂贵的事故。你挂了一笔卖单去平多头。在它成交之前，多头以别的方式没了——止损触发、强平执行，或者你自己手动平了。你那笔卖单现在成了一笔**开空**的订单。没有这个标志位，它会成交，于是你持有了一个自己从未打算持有的空头，事后才发现。

<h2 id="checks-at-submission">
  提交时的检查
</h2>

带有该标志位的订单，只要下列任何一项检查不通过，就会被直接拒绝：

| 检查项          | 规则                    |
| ------------ | --------------------- |
| **仓位存在**     | 你必须在该市场持有仓位           |
| **方向**       | 订单方向必须与被减的仓位相反        |
| **对冲模式下的方向** | 被平的那一侧必须确实存在仓位        |
| **数量**       | 单笔订单不得超过当前仓位数量        |
| **精度**       | 若仓位按市场最小增量舍入后为零，订单被拒绝 |

在 One-Way（单向）模式下，方向规则很简单：多头仓位只接受卖单，空头只接受买单。在对冲模式下则按侧判断：只持有多头时，一笔只减仓的买单会被拒绝，因为没有空头可供它平掉。

<h2 id="single-order-not-the-total">
  看单笔，不看总和
</h2>

数量检查作用于**每一笔订单本身**，而不是你所有只减仓订单的总和。

这是有意为之。你可以在不同价格挂多笔只减仓订单，合计数量超过仓位——阶梯离场本来就是这么做的，你也本来就只预期其中一部分会成交。

防止过度减仓的不是提交时的算术，而是接下来发生的事。

<h2 id="automatic-trimming">
  自动裁剪
</h2>

你的仓位每实际缩小一次，协议都会把这一侧的只减仓订单重新评估一遍。合计数量如果超过了仓位，就把它们**裁剪**到与仓位相匹配。

<div className="dg" data-dg="reduce-only-trim">
  <div className="dg-c" style={{aspectRatio:"720 / 300"}}>
    <svg className="dg-w" viewBox="0 0 720 300" aria-hidden="true">
      <path className="dg-wire dg--sky dg-soft" d="M 145.00 40.00 L 178.14 106.28" />

      <path className="dg-head dg--sky" d="M 181.00 112.00 L 174.20 108.24 L 182.07 104.31 Z" />

      <path className="dg-wire dg--sky dg-soft" d="M 145.00 88.00 L 175.67 108.45" />

      <path className="dg-head dg--sky" d="M 181.00 112.00 L 173.23 112.11 L 178.12 104.79 Z" />

      <path className="dg-wire dg--sky dg-soft" d="M 145.00 136.00 L 175.67 115.55" />

      <path className="dg-head dg--sky" d="M 181.00 112.00 L 178.12 119.21 L 173.23 111.89 Z" />

      <path className="dg-wire dg--sky dg-soft" d="M 145.00 184.00 L 178.14 117.72" />

      <path className="dg-head dg--sky" d="M 181.00 112.00 L 182.07 119.69 L 174.20 115.76 Z" />

      <path className="dg-wire dg--blue" d="M 340.00 112.00 L 361.60 112.00" />

      <path className="dg-head dg--blue" d="M 368.00 112.00 L 361.60 116.40 L 361.60 107.60 Z" />

      <path className="dg-wire" d="M 546.00 112.00 L 574.00 77.00" />

      <path className="dg-head" d="M 578.00 72.00 L 577.44 79.75 L 570.57 74.25 Z" />

      <path className="dg-wire dg--orange" d="M 546.00 112.00 L 574.00 147.00" />

      <path className="dg-head dg--orange" d="M 578.00 152.00 L 570.57 149.75 L 577.44 144.25 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"6.6667%",width:"19.4444%",height:"13.3333%"}}><span className="dg-t">成交</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"22.6667%",width:"19.4444%",height:"13.3333%"}}><span className="dg-t">止损触发</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"38.6667%",width:"19.4444%",height:"13.3333%"}}><span className="dg-t">强制平仓</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"54.6667%",width:"19.4444%",height:"13.3333%"}}><span className="dg-t">减仓</span></div>
    <div className="dg-b dg--blue" style={{left:"25.8333%",top:"25.3333%",width:"20.8333%",height:"24.0000%"}}><span className="dg-t">仓位缩小</span><span className="dg-s">无论它怎么缩小</span></div>
    <div className="dg-b dg--yellow dg-round" style={{left:"51.6667%",top:"28.0000%",width:"23.6111%",height:"18.6667%"}}><span className="dg-t">只减仓总量超过仓位？</span></div>
    <div className="dg-b" style={{left:"80.8333%",top:"16.0000%",width:"19.1667%",height:"16.0000%"}}><span className="dg-t">不变</span></div>
    <div className="dg-b dg--orange" style={{left:"80.8333%",top:"42.6667%",width:"19.1667%",height:"16.0000%"}}><span className="dg-t">裁剪到与仓位相符</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"0.0000%",top:"75.3333%",width:"48.8889%",height:"18.6667%"}}><span className="dg-t">计入总量</span><span className="dg-s">带该标志位、已触发的条件单</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"51.1111%",top:"75.3333%",width:"48.8889%",height:"18.6667%"}}><span className="dg-t">不计入</span><span className="dg-s">恰好方向相反的普通订单</span></div>
  </div>
</div>

正是这一点让该保证在任何事件序列下都成立。仓位是怎么缩小的并不重要——成交、止损、强平、减仓都算。它一旦缩小，挂在它上面的订单立刻被拉回一致，可执行的总量永远不会超过你实际持有的数量。

带这个标志位、已经触发的条件单也计入总量。方向恰好相反的普通订单则**不计入**——没有标志位的订单算不上承诺，协议也不会把它当承诺。

<Note>
  触发裁剪的是仓位真的发生了变化，不是你又挂了一笔订单。在只减仓卖单旁边再提交一笔普通卖单，在它成交之前什么都不会变——成交那一刻仓位下降，裁剪随即执行。
</Note>

<h2 id="no-margin-is-reserved">
  不占用保证金
</h2>

只减仓订单不占用保证金，即使你的可用余额为零也会被接受。

这一点在你最需要它的时候尤其重要。账户逼近强平时已经没有可用保证金；平仓如果还要先占一部分，那笔本可以救你的订单你就挂不出来。这种订单只能降低风险，还要它先押上保证金资产，就本末倒置了。

<h2 id="where-it-is-used">
  用在哪里
</h2>

* **手动平仓时**，当你打算平仓，并希望确定这笔订单不可能做别的事。
* **在[止盈与止损](/zh/trading/tp-sl)订单中**，它们天然是只减仓的——保护性订单如果可能开仓，那本身就是陷阱。
* **在自动化策略中**，这个标志位决定了你的机器人是干净离场，还是在一次意外平仓后悄悄反手。

<Warning>
  只减仓保证订单不会增加你的仓位，但不保证成交。行情一快，只减仓限价单可能完全不成交；至于被裁剪成更小的数量，那不是失败——那正是这个标志位在起作用。
</Warning>

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

<CardGroup cols={2}>
  <Card title="止盈与止损" href="/zh/trading/tp-sl">
    天然就是只减仓的保护性订单。
  </Card>

  <Card title="条件单" href="/zh/trading/conditional-orders">
    触发转换的那一刻，该标志位如何被重新检查。
  </Card>

  <Card title="订单类型" href="/zh/trading/order-types">
    该标志位可以挂在哪些订单形式上。
  </Card>

  <Card title="快速反手" href="/zh/trading/quick-reverse">
    有意翻转方向，正好是相反的意图。
  </Card>
</CardGroup>
