> ## 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 不按字面提交市價單。每一筆市價單都會在提交當下轉換成一筆**帶保護性價格界限的限價單**。它照樣立刻吃掉流動性，只是會在某個價格停下來，不會無限制地掃穿訂單簿。

<h2 id="three-bounds-strictest-wins">
  三條界限，取最嚴的
</h2>

這個界限取三個獨立推導出來的價格中最保守的那個。

<div className="dg" data-dg="market-order-bound">
  <div className="dg-c" style={{aspectRatio:"720 / 330"}}>
    <svg className="dg-w" viewBox="0 0 720 330" aria-hidden="true">
      <path className="dg-wire dg-soft" d="M 113.33 145.00 L 353.64 170.33" />

      <path className="dg-head" d="M 360.00 171.00 L 353.17 174.70 L 354.10 165.95 Z" />

      <path className="dg-wire dg-soft" d="M 360.00 145.00 L 360.00 164.60" />

      <path className="dg-head" d="M 360.00 171.00 L 355.60 164.60 L 364.40 164.60 Z" />

      <path className="dg-wire dg-soft" d="M 606.67 145.00 L 366.36 170.33" />

      <path className="dg-head" d="M 360.00 171.00 L 365.90 165.95 L 366.83 174.70 Z" />

      <path className="dg-wire dg--blue" d="M 360.00 226.00 L 360.00 235.60" />

      <path className="dg-head dg--blue" d="M 360.00 242.00 L 355.60 235.60 L 364.40 235.60 Z" />
    </svg>

    <div className="dg-b dg--blue" style={{left:"0.0000%",top:"0.0000%",width:"31.4815%",height:"42.4242%"}}><span className="dg-t">你的滑價容忍度</span><span className="dg-s">買單取最佳賣價 × (1 + s)，賣單取最佳買價 × (1 − s)</span><span className="dg-n">預設 10%，可在 0.01% 到 10% 之間設定。這是你能控制的那一條。</span></div>
    <div className="dg-b dg--yellow" style={{left:"34.2593%",top:"0.0000%",width:"31.4815%",height:"42.4242%"}}><span className="dg-t">該市場的價格帶</span><span className="dg-s">任何訂單都不得在帶外掛出或成交</span><span className="dg-n">保護的是市場，不是你 — 而且某個區塊取不到指數價格時直接拒絕，不會退而求其次。</span></div>
    <div className="dg-b dg--orange" style={{left:"68.5185%",top:"0.0000%",width:"31.4815%",height:"42.4242%"}}><span className="dg-t">你的數量能觸及的最差價格</span><span className="dg-s">由你的訂單實際會消耗的深度推導</span><span className="dg-n">盤口報價不會告訴你的那條界限。</span></div>
    <div className="dg-b dg--brown dg-round" style={{left:"34.7222%",top:"53.3333%",width:"30.5556%",height:"13.9394%"}}><span className="dg-t">三者中最嚴的</span></div>
    <div className="dg-b dg--blue" style={{left:"31.9444%",top:"74.5455%",width:"36.1111%",height:"21.2121%"}}><span className="dg-t">提交訂單上的限價</span><span className="dg-s">買單取三者中最低，賣單取最高</span></div>
  </div>
</div>

對買單，取三者中**最低**的；對賣單，取**最高**的。每一條堵住的缺口都不同，而且沒有任何一條單獨就夠用。

<h3 id="your-slippage-tolerance">
  你的滑價容忍度
</h3>

$$
\text{買單價格上限} = \text{最佳賣價} \times (1 + s) \qquad
\text{賣單價格下限} = \text{最佳買價} \times (1 - s)
$$

容忍度預設 10%，可在 0.01% 到 10% 之間設定。這是你能控制的那條界限，表達的是一個簡單的指令：**別讓我成交在離盤口比這更遠的地方。**

<h3 id="the-markets-price-band">
  該市場的價格帶
</h3>

每個市場都圍繞自己的參考價格強制執行一個價格帶，任何訂單都不得在帶外掛出或成交。這對市價單同樣適用：你的容忍度無法把成交推到超出市場對所有人的限制之外。

這條界限保護的是市場，不是你。沒有它，一筆打進真空裡的大額市價單可能打出一個成交價，而這個價格又會流進其他系統。

價格帶會同時對照標記價格和指數價格判定；某個區塊若取不到指數價格，已經配置了價格帶的市場會**直接拒絕，而不是退而求其次**——已經配置好的保護，不允許無聲失效。

價格帶的寬度按市場設定，存放在 `price_limit_ppm`，並由 `price_limit_x_ppm` 和 `price_limit_y_ppm` 做兩段式細分。要看數值，去讀合約規格，不要讀這一頁。

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

你對著這樣一份訂單簿，提交一筆 4,000 USDC 的 ETH 市價買單：

| 檔位 |     價格 |   數量 | 吃完所需金額 |
| -: | -----: | ---: | -----: |
|  1 | 50,000 | 0.02 |  1,000 |
|  2 | 50,100 | 0.03 |  1,503 |
|  3 | 50,200 | 0.04 |  2,008 |

引擎一檔一檔往下走，把預算花完為止：

* 第 1 檔吃掉 1,000，剩下 **3,000**
* 第 2 檔吃掉 1,503，剩下 **1,497**
* 第 3 檔有 2,008 可吃，但只剩 1,497，因此**部分成交**：1,497 ÷ 50,200 = **0.0298207 ETH**

你最後拿到 **0.0798207 ETH，均價 50,112.30**，不是訂單簿最上面那個 50,000。差額就是滑價，它是你的數量對上這份深度的結果，不是一筆手續費。

引擎推導出來的界限，就是它不得不觸及的最深那一檔的價格；你的市價單正是這樣變成該價格上的限價單。

<h3 id="the-worst-price-your-size-would-reach">
  你的數量能觸及的最差價格
</h3>

提交之前，系統會按你這筆訂單要吃掉的深度走一遍訂單簿，把觸及到的最深那一檔的價格當作一條界限。

這是三條裡最微妙的一條，處理的是另外兩條覆蓋不到的情形。你的容忍度是從盤口起算的，但盤口說明不了訂單簿在那附近有沒有足夠深度把你填滿。按實際數量走一遍訂單簿，就把**離盤口有多遠**換算成了**這筆訂單實際會落到哪裡**。

<h2 id="what-this-means-for-you">
  這對你意味著什麼
</h2>

**你的訂單可能無法完全成交。** 訂單簿在界限之內的流動性一旦用光，剩餘部分會撤銷，不會以更差的價格成交。市價單部分成交是保護在起作用，不是失敗。

**容忍度越緊，未成交的訂單越多。** 在波動市場上設 0.01%，會頻繁得到部分成交甚至完全不成交。預設的 10% 是寬鬆的，因為沒成交往往比幾個基點的滑價更糟；但它**確實**寬鬆，而在稀薄的市場裡，10% 是一筆實實在在的錢。

**數量比容忍度更重要。** 第三條界限是從你的數量推出來的，所以不管容忍度設得多慷慨，大額訂單還是受訂單簿的實際深度約束。把大額訂單拆開，才是降低衝擊的可靠辦法，參見 [TWAP](/zh-Hant/trading/twap) 和[階梯訂單](/zh-Hant/trading/scale-orders)。

<Note>
  這次轉換發生在提交時，使用的是那一刻的訂單簿。在提交與執行之間，訂單簿可能移動。這個界限保護你不去掃穿本就不存在的深度；它並不凍結市場。
</Note>

<h2 id="checking-before-you-submit">
  提交前先看一眼
</h2>

這個界限可以由公開資料算出來，因此用戶端可以在你確認之前顯示預期成交價和最壞情況。訂單只要相對可見的訂單簿算大，就值得先看一次：盤口價和最差可觸及價之間的差額，正是市價單藏起來的那個數。

<Warning>
  滑價保護約束的是價格，不是結果。在快速行情中，一筆本來能舒服成交的訂單可能只部分成交甚至完全落空，讓你在最想持有部位的那一刻沒有拿到它。要表達保護性意圖，帶明確觸發條件的[條件單](/zh-Hant/trading/conditional-orders)比容忍度放得很寬的市價單合適。
</Warning>

<h2 id="where-to-go-next">
  後續閱讀
</h2>

<CardGroup cols={2}>
  <Card title="訂單類型" href="/zh-Hant/trading/order-types">
    限價單、訂單有效期，以及各自如何處理未成交的剩餘部分。
  </Card>

  <Card title="訂單簿" href="/zh-Hant/trading/order-book">
    讀懂深度，以及為什麼盤口價不是成交價。
  </Card>

  <Card title="TWAP" href="/zh-Hant/trading/twap">
    把大額訂單沿時間拆開，降低衝擊。
  </Card>

  <Card title="市場" href="/zh-Hant/trading/markets">
    各市場的價格帶與最小價格變動單位。
  </Card>
</CardGroup>
