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

# 阶梯订单

> 一次操作在一个价格区间内挂出一列限价单——数量可以均匀分布，也可以向任一端倾斜。

阶梯订单在一个价格区间内挂出多笔限价单，一并提交。[TWAP](/zh/trading/twap) 把订单拆到*时间*上，阶梯订单则把它拆到*价格*上。

两者的区别在于你愿意让什么保持不确定。TWAP 接受市场在每个时间点给出的任何价格；阶梯订单把价格钉死，接受“能成交多少”的不确定——只有市场真正交易到的价位，你才会成交。

<h2 id="why-ladder">
  为什么要挂成阶梯
</h2>

**在区间里摊成本**。挑一个入场价，就是在赌时点。铺在一个区间上，市场穿过这段区间时你就一路建仓，均价反映的是这个区间，不是某一个瞬间。

**降低冲击**。一笔压在单一价格上的大额限价单就是一堵墙。拆到多个价位，同样的量更接近自然流动性的分布，也更不容易被人围着做。

**隐藏意图**。一笔挂着的大单是个明晃晃的信号。铺在区间上的若干笔小单，透露的东西要少得多。

<h2 id="parameters">
  参数
</h2>

| 参数             | 含义                             |
| -------------- | ------------------------------ |
| **总数量**        | 所有订单加总的数量                      |
| **起始价格**       | 区间的一端                          |
| **结束价格**       | 区间的另一端                         |
| **订单笔数**       | 铺多少档                           |
| **订单类型**       | 默认 GTC；也可选 Post-only（只挂单）或 IOC |
| **数量偏斜（skew）** | 数量在阶梯上如何分配                     |
| **只减仓**        | 限制该阶梯只能平掉已有仓位                  |

价格在两端之间均匀分布。数量分布由偏斜控制。

<h2 id="skew">
  偏斜
</h2>

偏斜是结束价格处的数量与起始价格处的数量之比。

| 偏斜       | 分布        |
| -------- | --------- |
| **1**    | 每笔订单数量相同  |
| **> 1**  | 越靠近结束价格越大 |
| **\< 1** | 越靠近起始价格越大 |

<div className="dg" data-dg="scale-order-skew">
  <div className="dg-c" style={{aspectRatio:"720 / 278"}}>
    <svg className="dg-w" viewBox="0 0 720 278" aria-hidden="true" />

    <div className="dg-band" style={{left:"0.0000%",top:"9.3525%",width:"48.3333%",height:"64.0288%"}}><span className="dg-cap">偏斜 = 1 · 均匀</span></div>
    <div className="dg-band" style={{left:"51.6667%",top:"9.3525%",width:"48.3333%",height:"64.0288%"}}><span className="dg-cap">偏斜 = 4 · 向远端加权</span></div>
    <div className="dg-free dg-mid" style={{left:"0.0000%",top:"80.5755%",width:"100.0000%"}}><div className="dg-s">总量同样是 1.0，价格同样是这四档 — 变的只是分布。</div><div className="dg-n">买入阶梯：向远端加权，意味着只有价格跌得更深才投入更多资金。</div></div>
    <div className="dg-bar" style={{left:"2.2222%",top:"16.5468%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>50,000</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"62.500%"}} /></span><span className="dg-bar-trail">0.25</span></div>
    <div className="dg-bar" style={{left:"2.2222%",top:"30.2158%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>49,800</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"62.500%"}} /></span><span className="dg-bar-trail">0.25</span></div>
    <div className="dg-bar" style={{left:"2.2222%",top:"43.8849%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>49,600</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"62.500%"}} /></span><span className="dg-bar-trail">0.25</span></div>
    <div className="dg-bar" style={{left:"2.2222%",top:"57.5540%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>49,400</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"62.500%"}} /></span><span className="dg-bar-trail">0.25</span></div>
    <div className="dg-bar" style={{left:"53.8889%",top:"16.5468%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>50,000</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"25.000%"}} /></span><span className="dg-bar-trail">0.10</span></div>
    <div className="dg-bar" style={{left:"53.8889%",top:"30.2158%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>49,800</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"50.000%"}} /></span><span className="dg-bar-trail">0.20</span></div>
    <div className="dg-bar" style={{left:"53.8889%",top:"43.8849%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>49,600</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"75.000%"}} /></span><span className="dg-bar-trail">0.30</span></div>
    <div className="dg-bar" style={{left:"53.8889%",top:"57.5540%",width:"43.8889%",height:"10.0719%"}}><span className="dg-bar-lead" style={{width:"18.3544%"}}>49,400</span><span className="dg-bar-track"><span className="dg-bar-fill dg--blue" style={{left:"0%",width:"100.000%"}} /></span><span className="dg-bar-trail">0.40</span></div>
  </div>
</div>

实际怎么用：把买单阶梯的权重往远端压，意思是价格跌得更深才投更多钱，这和均匀投入是两种下注方式。它表达的是你对“想在区间的哪一段持仓”的判断。

<h2 id="validation">
  校验
</h2>

一笔都还没挂出去之前，整个阶梯先过一遍整体检查：

* 每一笔单独订单都必须满足市场的最小与最大订单数量
* 总量必须满足起始保证金
* 若为只减仓，总量不得超过你当前的仓位

只要有一档没过，一笔都不会挂出去。挂了一半的阶梯，既不是你指定的那套打法，也不是你会主动选的那套。

提交之前，阶梯的第一笔和最后一笔会先显示出来，你可以确认区间和数量分配确实是你要的。

<h2 id="after-placement">
  挂出之后
</h2>

一旦挂出，它们就是**普通的限价单**。背后没有任何策略在运行。

所以其中任何一笔你都可以单独撤、单独改；它们各挂各的、各成交各的；只成交了一部分，也不会有什么再平衡。价格扫过你区间的一半又掉头，你手上就是半个阶梯，剩下的原地不动——没有追赶机制，因为阶梯订单是一次挂单，不是一个执行算法。

<Note>
  阶梯用 Post-only（只挂单），能保证每一档都吃到挂单费率。代价是：挂出去时会与订单簿交叉的那些档位会被拒，而不是成交——阶梯要是挂得离盘口太近，缺口就这么悄悄留下了。
</Note>

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

<CardGroup cols={2}>
  <Card title="TWAP" href="/zh/trading/twap">
    拆到时间而不是价格上，并带追赶机制。
  </Card>

  <Card title="订单类型" href="/zh/trading/order-types">
    Post-only、GTC 和 IOC 作用在每一档上的效果。
  </Card>

  <Card title="修改订单" href="/zh/trading/modify-orders">
    挂出之后调整单独的档位。
  </Card>

  <Card title="手续费" href="/zh/programs/fees">
    阶梯挂单档位上的挂单费率。
  </Card>
</CardGroup>
