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

# 交易排序

> 区块内各类操作的固定执行顺序——以及为什么撤单、只挂单订单和强制平仓都排在任何可能吃掉流动性的操作之前。

区块内的一切都按固定的优先级顺序执行。不按手续费，不按到达某个节点的时间，也不按与验证者的距离——按类别，由协议决定，在每个节点上完全一致。

<div className="dg" data-dg="tx-sequencing">
  <div className="dg-c" style={{aspectRatio:"720 / 392"}}>
    <svg className="dg-w" viewBox="0 0 720 392" aria-hidden="true">
      <path className="dg-wire dg-soft" d="M 20.00 105.00 L 20.00 114.60" />

      <path className="dg-head" d="M 20.00 121.00 L 15.60 114.60 L 24.40 114.60 Z" />

      <path className="dg-wire dg-soft" d="M 20.00 195.00 L 20.00 204.60" />

      <path className="dg-head" d="M 20.00 211.00 L 15.60 204.60 L 24.40 204.60 Z" />

      <path className="dg-wire dg-soft" d="M 20.00 285.00 L 20.00 294.60" />

      <path className="dg-head" d="M 20.00 301.00 L 15.60 294.60 L 24.40 294.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"8.6735%",width:"5.5556%",height:"17.3469%"}}><span className="dg-t dg-ink--sky">1</span></div>
    <div className="dg-b dg--sky dg-left" style={{left:"7.2222%",top:"8.6735%",width:"52.7778%",height:"17.3469%"}}><span className="dg-t">系统操作</span><span className="dg-s">上线市场 · 风险参数 · 费率表 · 账户创建 · 本区块的标记价格</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"62.2222%",top:"8.6735%",width:"37.7778%",height:"17.3469%"}}><span className="dg-s">下游的一切都对着同一个价格推理</span></div>
    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"31.6327%",width:"5.5556%",height:"17.3469%"}}><span className="dg-t dg-ink--sky">2</span></div>
    <div className="dg-b dg--sky dg-left" style={{left:"7.2222%",top:"31.6327%",width:"52.7778%",height:"17.3469%"}}><span className="dg-t">非撮合操作</span><span className="dg-s">资金优先 · 账户配置 · 只挂单订单 · 强制平仓</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"62.2222%",top:"31.6327%",width:"37.7778%",height:"17.3469%"}}><span className="dg-s">能改善账户健康度的钱，在任何评估健康度的动作之前落地</span></div>
    <div className="dg-b dg--green" style={{left:"0.0000%",top:"54.5918%",width:"5.5556%",height:"17.3469%"}}><span className="dg-t dg-ink--green">3</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"7.2222%",top:"54.5918%",width:"52.7778%",height:"17.3469%"}}><span className="dg-t">撤单</span><span className="dg-s">区块内的每一笔撤单</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"62.2222%",top:"54.5918%",width:"37.7778%",height:"17.3469%"}}><span className="dg-s">过期报价撤得掉，和撤单同时到达的订单吃不到它</span></div>
    <div className="dg-b dg--orange" style={{left:"0.0000%",top:"77.5510%",width:"5.5556%",height:"17.3469%"}}><span className="dg-t dg-ink--orange">4</span></div>
    <div className="dg-b dg--orange dg-left" style={{left:"7.2222%",top:"77.5510%",width:"52.7778%",height:"17.3469%"}}><span className="dg-t">可能吃掉流动性的订单</span><span className="dg-s">一切主动吃单，排在最后</span></div>
    <div className="dg-b dg-plain dg-left" style={{left:"62.2222%",top:"77.5510%",width:"37.7778%",height:"17.3469%"}}><span className="dg-s">区块内部的亚毫秒级竞赛不存在</span></div>
    <div className="dg-free" style={{left:"7.2222%",top:"0.5102%",width:"52.7778%"}}><div className="dg-n">在每个节点上，按此顺序执行</div></div>
    <div className="dg-free" style={{left:"62.2222%",top:"0.5102%",width:"37.7778%"}}><div className="dg-n">这个位置换来什么</div></div>
  </div>
</div>

这个顺序本身就是机制：挂着的报价守得住，强制平仓抢不了跑，亚毫秒级的延迟竞赛也被赶出了区块内部。

<h2 id="1-system-operations">
  1 · 系统操作
</h2>

管理性和协议级的变更：上线与下线市场、风险参数更新、费率表变更、账户与子账户创建，以及本区块的标记价格更新。

标记价格先更新，下游的一切才能对着同一个价格推理。同一个区块里，强平检查和新提交的订单，看到的是同一个数。

<h2 id="2-non-matching-actions">
  2 · 非撮合操作
</h2>

不触及订单簿、但会改变状态的操作，内部顺序如下：

**资金优先**——充值、给逐仓仓位手动加保证金，以及资金费结算。凡是能改善账户健康度的钱，都在任何评估健康度的动作之前落地。

**账户配置**——保证金模式、持仓模式、杠杆，以及代理授权的变更。

**Post-only（只挂单）订单**——唯一放在这里、不放到第 4 阶段的订单类型，因为只挂单按定义就吃不到流动性。这些订单被保证是挂单方，按到达顺序先入簿，之后才轮到别的订单来跟它们成交。

**强制平仓**——先撤掉受影响账户的订单，再查一遍，还有必要就接管仓位。接管直接按破产价格执行，不进订单簿。

<Note>
  强制平仓放在这里跑——排在任何自主订单前面——区块内的强平抢不了跑，原因就在这儿。等第 4 阶段开始，被迫产生的流动早就处理完了。
</Note>

<h2 id="3-cancellations">
  3 · 撤单
</h2>

用户发起的撤单，排在任何可能吃掉流动性的订单之前。

对任何做报价的人来说，这是最要紧的一个阶段。**撤单和主动吃单在同一区块提交，撤单赢**。价格一动你撤掉过期报价，和撤单同时到的订单就吃不到它。

在多数场所，这是一场“谁先到撮合引擎”的竞赛，拼的是延迟。在这里由协议说了算：基础设施再好再差，结果对所有人都一样。

<h2 id="4-orders-that-may-take-liquidity">
  4 · 可能吃掉流动性的订单
</h2>

一切可能与订单簿交叉的操作：任何订单有效期下的限价单、市价单、TWAP 分片、非只挂单的阶梯订单，以及订单修改。在这个阶段内部，按先进先出处理。

<h3 id="what-reaches-this-phase">
  什么会进到这个阶段
</h3>

这个阶段内部按先到先服务处理。关于「什么会到这里」，有两点值得点名。

**Post-only（只挂单）订单永远不会到。** 它们在第 2 阶段处理，本来也吃不到流动性。

**在链上触发的条件单，会在同一个区块里到。** 由本区块标记价格触发的止损或止盈，会在这里转换并进入撮合，而不是等到下一个区块。触发是协议依据已提交状态作的决定，不是某个能挑时点的人提交的。

<h2 id="what-this-changes">
  这改变了什么
</h2>

**区块内部，延迟不再重要**。同一个区块里的两笔订单有确定的先后，每个节点算出来都一样。区块之间，到达时间仍然重要，但竞争的单位是区块。

**报价守得住**。你可以撤掉过期报价，赢过同一时刻到达的订单。这是结构上的性质，不是花钱做主机托管买来的运营优势。

**被迫产生的流动先于自主流动结算**。强制平仓和资金费在任何人能围着它们做交易之前就已经完成。

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

<CardGroup cols={2}>
  <Card title="订单类型" href="/zh/trading/order-types">
    哪些类型能吃掉流动性，哪些不能。
  </Card>

  <Card title="修改订单" href="/zh/trading/modify-orders">
    为什么就地减少数量会立即生效。
  </Card>

  <Card title="强制平仓" href="/zh/trading/liquidations">
    在撮合之前完成的第 2 阶段流程。
  </Card>

  <Card title="IntentionKernel" href="/zh/protocol/architecture/kernel">
    这份时序表在区块执行中的位置。
  </Card>
</CardGroup>
