入門與交易

滑價與買賣價差是什麼?用真實訂單簿算出成交成本與降低方法

下單價和成交均價對不上,多半來自買賣價差和滑價。本文用 Kraken 公開行情的真實快照,比較不同交易對的價差占比、算出一筆 1 萬美元來回的價格衝擊,並說明去中心化兌換的滑價容忍度該怎麼設。

滑價與買賣價差是什麼?用真實訂單簿算出成交成本與降低方法

下單前看到的價格是一個數字,成交後拿到的均價卻是另一個數字,差額通常來自兩件事:「買賣價差」和「滑價」。前者在你下單之前就已經存在,後者發生在訂單成交的過程中。這篇用兩組真實行情數字算給你看它們各自有多大、什麼情況下會放大,以及在交易所和去中心化兌換(swap)裡分別該怎麼控制。

加密資產價格可能劇烈波動,投入的資金可能全部損失。本文只說明成交成本怎麼形成,不構成投資建議。

先分清楚:價差、價格衝擊、滑價是三件事

名稱 什麼時候發生 由什麼決定 你能控制的部分
買賣價差(spread) 下單之前就存在 最低賣價減最高買價 選流動性好的交易對、用限價單
價格衝擊(price impact) 訂單在成交的那一瞬間 你的訂單量相對於掛單量有多大 縮小單筆金額、分批
延遲滑價 從送出訂單到實際成交之間 這段時間內行情變了多少 設定滑價容忍度或價格上限

很多文章把後兩者都叫「滑價」。分開來看比較好處理:價格衝擊是「量太大,自己把價格推開了」,事前就算得出來;延遲滑價是「等待期間別人先成交了」,只能設上限,無法預先算準。

買賣價差:同一時間,不同交易對差很多

交易所的訂單簿裡,最低的賣價叫最佳賣價(ask),最高的買價叫最佳買價(bid)。市價買入至少要付最佳賣價,市價賣出最多只拿到最佳買價,兩者之間的差就是你「一買一賣」立刻會損失的部分。

下面是 Kraken 公開行情介面在 2026-10-05 17:48(台北時間)回傳的兩個交易對報價,網址不需登入就能打開:https://api.kraken.com/0/public/Ticker?pair=XBTUSDT,KSMUSD。

Kraken 公開行情介面回傳的 KSMUSD 與 XBTUSDT 報價原始資料,KSMUSD 的 a 欄最佳賣價 5.17000、b 欄最佳買價 5.16000,XBTUSDT 的 a 欄 85965.90000、b 欄 85962.10000

a 是最佳賣價、b 是最佳買價,v 是成交量(第二個數字為近 24 小時)。

把價差換成百分比(價差 ÷ 買賣中間價):

交易對 最佳賣價 最佳買價 價差 價差占比
BTC/USDT(XBTUSDT) 85,965.9 85,962.1 3.8 約 0.0044%
KSM/USD 5.17 5.16 0.01 約 0.19%

KSM 的價差只差 1 分錢,看起來很小,但換成比例是 BTC 的四十多倍。價格本身低、每一檔最小跳動(tick)相對大、掛單的人少,都會讓價差占比變高。所以判斷價差要看「百分比」,不要看絕對金額。

價格衝擊:用真實訂單簿算一筆 1 萬美元的來回

價差只是第一檔。訂單一旦大過第一檔的掛單量,就會往更差的價格吃下去。下面是幾秒後同一介面的 KSM/USD 訂單簿(Depth?pair=KSMUSD&count=8):

Kraken 公開行情介面回傳的 KSMUSD 訂單簿原始資料,asks 由 5.17000 數量 1154.580 起依序往上,bids 由 5.16000 數量 4.979、5.15000 數量 1014.643、5.14000 數量 1972.334 起依序往下

每組中括號依序是價格、數量(KSM)、該檔最後更新的時間戳。

假設這一刻用市價買入 10,000 美元的 KSM,訂單簿沒有變化:

成交價格 成交數量(KSM) 小計(USD)
5.17 1,154.580 5,969.18
5.18 201.068 1,041.53
5.19 575.971 2,989.29
合計 1,931.619 10,000.00

平均成交價約 5.1770,比最佳賣價 5.17 高了約 0.14%,這就是價格衝擊。

如果買完立刻把這 1,931.619 KSM 用市價賣回去:最佳買價 5.16 那一檔只有 4.979 KSM,接著要賣在 5.15 和 5.14,總共拿回約 9,938.77 美元,平均約 5.1453。還沒算任何手續費,一來一回就少了約 61 美元,相當於 0.61%。

BTC/USDT 這類成交量大的交易對,價差占比只有約 0.0044%,每一檔的掛單通常也厚得多,同樣 1 萬美元的價格衝擊會小很多。把網址裡的 pair= 換成 XBTUSDT,就能用同一個方法自己算。

這給出一個下單前就能做的估算方法:

  1. 打開交易對的訂單簿(交易所的「深度」或「盤口」區)。
  2. 買入就看賣單那一排,把前幾檔的「價格 × 數量」加總,直到超過你要下的金額。
  3. 如果要吃到第三、四檔以後,或最後一檔的價格比第一檔差超過你能接受的比例,就改用限價單或分批。

延遲滑價:送出訂單到成交之間,價格變了

就算訂單量不大,從按下確認到真正成交之間也有一段時間。行情劇烈波動時,這段時間內別人可能已經把最佳價格的掛單吃掉或撤掉,你拿到的就是更差的價格。

在中心化交易所,這段延遲通常很短,但遇到急漲急跌、重大消息公布時仍可能明顯。部分平台會設價格保護:預估成交價偏離太多時直接取消訂單,而不是照單全收(規則因平台而異,市價單與限價單的差別與平台保護規則可以看市價單與限價單怎麼選,以及成交均價為何和畫面不同)。

在鏈上的去中心化兌換,延遲更長,因為交易要先廣播、等礦工或驗證者打包進區塊。Uniswap 的官方文件把這兩件事分開說明:

Uniswap 開發者文件 Understanding Swaps on Uniswap 頁面中的 Price Impact 與 Slippage 兩段英文說明,提到流動性越少價格衝擊越大,以及執行價格超出滑價容忍範圍例如 1% 時交易會失敗

文件的意思整理如下:價格衝擊取決於該價格區間有多少流動性,流動性越少衝擊越大,介面會在送出前顯示預估值,數值異常高時會出現警告;滑價則是交易等待打包期間價格發生的變化,滑價容忍度是使用者在價格衝擊之外還能接受的變動幅度,例如 1%,超出這個範圍交易就會失敗、兌換不會發生。

滑價容忍度怎麼設

在去中心化兌換或錢包內建的 swap 功能,通常可以在設定(齒輪圖示)裡調整滑價容忍度。它的作用是設一個「最少要拿回多少」的底線,對應文件中的最低輸出量(minimum output):成交結果低於這個量,交易會整筆退回(revert)。

設定的取捨:

  • 「設太低」:行情稍有變動交易就失敗。在以太坊等網路上,失敗的交易通常仍要支付已消耗的網路手續費(Gas),手續費怎麼算見比特幣、以太坊與波場的鏈上手續費計算方式。
  • 「設太高」:交易幾乎一定成功,但你等於同意用很差的價格成交,也讓等待中的交易更容易被他人利用來搶先交易、抬高你的成交價。

實用做法:

  1. 先看介面顯示的預估價格衝擊。主流幣、流動性大的交易對通常很小;數值偏高時,先縮小金額,而不是調高容忍度去「硬過」。
  2. 容忍度從介面預設值開始,只有在交易一再失敗、且確認是行情正常波動時才小幅調高。
  3. 送出前看一次「最少收到」的數字,確定那是你能接受的最差結果。
  4. 不認識的代幣如果要把容忍度調到很高才換得到,先停下來檢查:可能是流動性極低,或代幣合約本身在轉帳時另外扣費。

在交易所下單時怎麼降低價差與滑價成本

情況 做法 原因
主流幣、小額 市價單影響很小,也可用略穿價的限價單 第一檔通常就夠成交
價差占比明顯偏高的交易對 用限價單掛在買賣價之間或自己的目標價 避免一進場就先付掉整個價差
金額超過前幾檔掛單加總 分批下單,或用限價單設成交上限 避免一路吃到很差的價格
行情劇烈波動時 先看最佳買賣價和前幾檔數量,再決定是否下單 價差會變寬、掛單會變少
想同時壓低手續費 以不會立即成交的限價單掛單 掛單方費率常低於吃單方,判斷方式見掛單與吃單怎麼分、手續費差多少

最後別忘了,價差和滑價都「不會出現在手續費明細裡」,它們已經反映在成交價中。要算一筆交易的真實成本,請到成交紀錄看實際均價,和下單前的最佳買價或賣價比較,再加上手續費。

常見問題

滑價一定是虧的嗎?

不一定。延遲期間價格也可能往對你有利的方向走,成交價反而更好,這種情況有時稱為正滑價。但價差和價格衝擊在市價成交時一定是成本。

用限價單就不會有滑價嗎?

限價單的成交價不會比你設的價格差,所以不會有「超出預期」的滑價;代價是可能只成交一部分或完全不成交。如果限價買單的價格高於最佳賣價,送出時仍會立刻吃掉那些更低的賣單,只是最差不會超過你設的價。

換匯、閃兌功能沒有顯示價差,是不是就沒有?

閃兌通常給的是一個已經包含價差的報價,所以不會另外列出。可以把報價和同一時間訂單簿上的最佳買賣價比較,就看得出差多少。

滑價容忍度設 0.5% 和 1% 差多少錢?

以 1,000 美元的兌換為例,0.5% 代表最多接受少拿約 5 美元,1% 約 10 美元。這只是「最差可接受」的界線,實際成交通常會更好;但容忍度越高,最差情況就越差。

資料來源:Kraken 公開行情介面 Ticker 與 Depth(訂單簿)(數字取自 2026-10-05 17:48 台北時間的快照,重新打開會看到當下的數字);Uniswap 開發者文件:Understanding Swaps on Uniswap(價格衝擊、滑價、滑價容忍度與最低輸出量的說明)。