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

# 止盈与止损（TP/SL）

> 附加在订单上或附加在仓位上的保护性订单——各自如何确定数量、这一对如何互相撤销，以及为什么它们只触发一次。

止盈与止损是[条件单](/zh/trading/conditional-orders)，任务只有一个：价格到了你选定的水平，就把仓位平掉。它们始终是只减仓的——保护性订单如果还能开仓，那跟保护恰恰相反。

它们有两种形态，而两者的区别是本页最重要的一件事。

<h2 id="attached-to-an-order-or-attached-to-a-position">
  附加在订单上，还是附加在仓位上
</h2>

**附加在订单上**：你在下入场单的同时设好止盈与止损。那笔订单一成交，它们就激活，数量跟那笔订单一致。入场单要是在成交前被撤销，保护性订单也随之消失。

**附加在仓位上**：你在仓位面板上，对已经持有的仓位设置它们。作用范围是这个仓位，不是某个数量。

这个作用范围有一个值得直说的后果：

<Note>
  附加在仓位上的保护性订单，平掉的是**触发那一刻仓位的实际大小**，不是你设置它时的大小。加仓之后，止损覆盖更大的数量；减仓之后，覆盖更小的数量。改了仓位，你不用回头重设它。
</Note>

有一个例外。保护性订单如果转换成的是**限价单**、不是市价单，数量在触发那一刻就定死了。从此它就是一笔普通的挂单，不再跟着仓位走。

<h2 id="configuration">
  配置
</h2>

| 选项    | 可选值                                  |
| ----- | ------------------------------------ |
| 触发价格  | [标记价格](/zh/trading/mark-price)或最新成交价 |
| 生成的订单 | 市价或限价                                |

对保护性订单来说，标记价格是更安全的触发参考——它经过平滑，比最新成交价难推动得多。这一点是关键，因为保护性订单的全部意义，就是不被一笔异常成交扫出去。最新成交价反应更快，跟着你看到的成交记录走。

<h2 id="how-the-pair-cancels">
  这一对如何互相撤销
</h2>

止盈与止损以“二选一撤销”的方式关联。具体行为要看被触发的那条腿有没有走完。

<div className="dg" data-dg="tp-sl-oco">
  <div className="dg-c" style={{aspectRatio:"720 / 306"}}>
    <svg className="dg-w" viewBox="0 0 720 306" aria-hidden="true">
      <path className="dg-wire dg--blue" d="M 154.00 58.00 L 175.60 58.00" />

      <path className="dg-head dg--blue" d="M 182.00 58.00 L 175.60 62.40 L 175.60 53.60 Z" />

      <path className="dg-wire dg--green" d="M 340.00 58.00 L 367.40 31.45" />

      <path className="dg-head dg--green" d="M 372.00 27.00 L 370.46 34.61 L 364.34 28.29 Z" />

      <path className="dg-wire dg--orange" d="M 340.00 58.00 L 367.94 92.05" />

      <path className="dg-head dg--orange" d="M 372.00 97.00 L 364.54 94.84 L 371.34 89.26 Z" />

      <path className="dg-wire dg--orange" d="M 548.00 128.00 L 548.00 141.60" />

      <path className="dg-head dg--orange" d="M 548.00 148.00 L 543.60 141.60 L 552.40 141.60 Z" />
    </svg>

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"9.8039%",width:"20.8333%",height:"18.3007%"}}><span className="dg-t">一条腿触发</span></div>
    <div className="dg-b dg--yellow dg-round" style={{left:"25.8333%",top:"8.4967%",width:"20.8333%",height:"20.9150%"}}><span className="dg-t">是否完全成交？</span></div>
    <div className="dg-b dg--green" style={{left:"52.2222%",top:"0.0000%",width:"47.7778%",height:"17.6471%"}}><span className="dg-t">另一条腿被撤销</span><span className="dg-s">仓位平掉，没有留下待命的订单</span></div>
    <div className="dg-b dg--orange" style={{left:"52.2222%",top:"22.8758%",width:"47.7778%",height:"17.6471%"}}><span className="dg-t">另一条腿保持有效</span><span className="dg-s">你仍然持有仓位，所以你仍然需要保护</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"52.2222%",top:"49.6732%",width:"47.7778%",height:"20.9150%"}}><span className="dg-t">如果它之后触发</span><span className="dg-s">未成交的剩余部分被撤销，这条腿再针对当时的实际仓位触发</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"0.0000%",top:"49.6732%",width:"47.7778%",height:"20.9150%"}}><span className="dg-t">它恰好触发一次</span><span className="dg-s">部分平仓不会让它重新装填</span></div>
    <div className="dg-b dg--sky dg-left" style={{left:"0.0000%",top:"77.7778%",width:"100.0000%",height:"18.3007%"}}><span className="dg-s">触发产生的市价单使用固定 10% 的滑点容忍度，与你为手动订单配置的值无关。部分平仓之后请检查仓位——剩余部分在你重新设置之前是没有保护的。</span></div>
  </div>
</div>

**如果触发的那条腿完全成交**，另一条被撤销。仓位平掉，没有留下任何待命的订单。

**如果它触发成一笔没有成交的限价单**，另一条腿保持有效。这是人们没预料到的情况，但它是正确的行为：你仍然持有仓位，所以你仍然需要保护。市场随后要是反向走得够远、触发了第二条腿，第一条腿留下的未成交订单会被撤销，第二条腿则针对当时的实际仓位触发——数量可能和第一次尝试时不一样。

<h2 id="they-fire-once">
  它们只触发一次
</h2>

保护性订单**恰好触发一次**。如果由此产生的订单没有完全平掉仓位，协议**不会**为剩余部分重新装填。

这一点很重要，因为触发产生的市价单是“立即成交，否则撤销”：在薄的订单簿里，它可能平掉你一部分仓位，剩下的被撤销，于是你还持着一部分敞口，却没有任何保护待命。

只触发一次是有意的设计。订单簿刚刚才没吃下这笔订单，就自动重新装填，等于把订单一遍遍送进造成部分成交的那种流动性缺失里——而且是在最糟的条件下反复送。

<Warning>
  部分平仓之后，请检查你的仓位。保护性订单已经用掉了，剩余敞口在你重新设置之前是没有保护的。这是本场所与那些会自动重新触发的平台之间，最有实际后果的差别。
</Warning>

<h2 id="slippage-on-a-triggered-market-order">
  触发的市价单上的滑点
</h2>

由保护性触发产生的市价单使用**固定 10% 的滑点容忍度**，与你为手动订单配置的值无关。

理由是：止损存在的目的就是让你出来。沿用你日常设置里那个很紧的容忍度，会导致止损触发了却没成交，把你留在它本该带你离开的仓位里。宽的边界用更差的价格换真正的离场。

[市价单](/zh/trading/market-to-limit)的其他规则依然适用——市场的价格带和由深度推导出的边界，仍然限制成交价。

<h2 id="changing-them">
  修改它们
</h2>

保护性订单**不能就地编辑**。要改触发价或限价，只能撤销后重新创建。

撤销和重建之间的那道缝，就是一段没有保护的窗口。在快速行情里，平台允许的话就先把新订单设好；否则接受这个窗口存在，把它压到最短。

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

<CardGroup cols={2}>
  <Card title="条件单" href="/zh/trading/conditional-orders">
    底层的触发机制，以及完整的状态模型。
  </Card>

  <Card title="只减仓" href="/zh/trading/reduce-only">
    让保护性订单得以安全的那个保证。
  </Card>

  <Card title="标记价格" href="/zh/trading/mark-price">
    为什么它是更安全的触发参考。
  </Card>

  <Card title="强制平仓" href="/zh/trading/liquidations">
    如果保护没有及时触发会发生什么。
  </Card>
</CardGroup>
