GaiaExGaiaEx
什麼是訂單簿?交易是如何撮合的
初學者交易6 min read

什麼是訂單簿?交易是如何撮合的

每一筆交易背後的引擎——買價、賣價與價格-時間優先

分享文章

什麼是訂單簿?

任何一筆交易要發生——無論在哪家交易所、哪個角落——總得有人先出手。一個買家掛出他願意支付的價格。一個賣家報出自己的數字。這些宣告每秒鐘以成千上萬條的速度堆積起來,匯成一個叫做訂單簿的資料結構。

它的本質就是這麼簡單。一個佇列。

每一條記錄攜帶三項資訊:方向(買或賣)、價格和數量。「在 $67,450 買入 0.40 BTC。」「在 $67,520 賣出 1.10 BTC。」把幾千條這樣的記錄疊在一起,你就得到一張活生生、不停抖動的地圖,標出買家認為公允價值在哪裡、賣家又在哪裡持不同意見。出價最激進的買家和報價最便宜的賣家之間的那道縫隙呢?那就是市場,被濃縮成了一個數字。

當一個買家的價格觸及或超過某個賣家的價格時,撮合引擎就會觸發。兩條記錄都從訂單簿上消失。圖表更新。沒有討價還價,沒有電話,沒有等待。19 世紀紐約證券交易所(NYSE)大廳裡的專門經紀人(specialist broker)曾經手寫維護這種帳本——數字化的版本只是把它加快了六七個數量級。

在 GaiaEx 上開啟任意一個市場——BTC/USDT、代幣化黃金、ETH 的永續合約——訂單簿就在那裡,透過 WebSocket 逐筆(tick-by-tick)更新。它展示的是還沒有成交的東西:還沒人賣給它的那些買價,還沒人買走的那些賣價。不是過去。而是未來。

買價、賣價與價差

訂單簿有兩側。左邊是買價(bid)——買家,按價格從高到低排列。右邊是賣價(ask)——賣家,按價格從低到高排列。每一側最激進的參與者都坐在最上方,隔著一道叫做價差(spread)的縫隙相互打量。

來看一份取自 GaiaEx BTC/USDT 訂單簿的真實快照,捕捉於倫敦時段的某個下午,當時過去 24 小時的成交量約為 $380M:

買價買單數量賣價賣單數量
$67,4800.85 BTC$67,5100.42 BTC
$67,4702.30 BTC$67,5201.10 BTC
$67,4601.75 BTC$67,5403.85 BTC
$67,4504.20 BTC$67,5500.90 BTC
$67,4306.00 BTC$67,5805.20 BTC

價差:$30。這是最優買價($67,480)和最優賣價($67,510)之間的距離,約為 0.04%。對於 BTC/USDT 這樣的主流交易對,這很正常——足夠窄,一個來回(先買後賣)光是價差本身每枚幣也只讓你花掉約 $30。把它跟一個日成交量也許只有 $1.5M 的冷門山寨幣比一比:0.5–1.0% 的價差很常見,會很快侵蝕你的優勢。

累計深度講的是另一個故事,和單個檔位不一樣。在上面的快照裡,買方一側在距最優買價 $50 以內堆積了 15.10 BTC——約 $1.02M 的買盤支撐。賣方一側在更寬的 $70 區間內合計 11.47 BTC,約 $775K。買價比賣價多,而且堆得更密。如果你照單全收地相信訂單簿,這就是溫和的買盤壓力。(至於為什麼你不該總是相信它,後面再說。)

有一點經常把新手絆倒:你圖表上閃爍的那個「價格」是最近成交價,而不是來自訂單簿的實時報價。訂單簿展示意圖。圖表展示歷史。兩者相關,但不是一回事。

BTC / USDT — 訂單簿快照 GaiaEx · 14:32 UTC · 24h 成交量 $382M 數量 買價 賣價 數量 0.85 $67,480 2.30 $67,470 1.75 $67,460 4.20 $67,450 6.00 $67,430 價差 $30 · 0.04% $67,510 0.42 $67,520 1.10 $67,540 3.85 $67,550 0.90 $67,580 5.20 累計深度 $50 以內買盤 → 15.10 BTC (~$1.02M) $70 以內賣盤 → 11.47 BTC (~$775K) 最優買價 $67,480 × 0.85 → 當前最高的買入掛單 最優賣價 $67,510 × 0.42 → 最便宜的可買賣單 買盤深度超過賣盤 → 溫和的買盤壓力 綠條 = 買盤深度 · 紅條 = 賣盤深度 · 條形寬度與數量成正比 買家(買價) 賣家(賣價) 價差區域 快照僅作示意。gaiaex.com 上的實時訂單簿透過 WebSocket 更新。
一份 BTC/USDT 訂單簿快照。買價(綠色)在左側按價格從高到低堆疊;賣價(紅色)在右側按價格從低到高堆疊。價差位於中央。

市價單 vs. 限價單

你與訂單簿的每一次互動,歸根結底都是一個選擇:你想要成交的確定性,還是價格的確定性?兩者不可兼得。

市價單很沒耐心。「現在就買 1.5 BTC,賣方一側報什麼價都行。」撮合引擎立即照辦。它先抓住最便宜的賣價——$67,510 的 0.42 BTC——然後向上挪到下一檔:$67,520 的 1.08 BTC。搞定。你成交了。你的平均買入價落在 $67,517 左右,比報出的最優賣價略高,因為你為了湊齊全部數量吃穿了兩個價格檔位。你預期的價格和實際拿到的價格之間的那道縫隙,就是滑點(slippage)。

滑點能糟到什麼程度?在倫敦時段 BTC/USDT 這樣的深度訂單簿上,一筆 1.5 BTC 的市價單幾乎掀不起波瀾——在一個 $101K 的頭寸上,滑點也許就 $7。換成周日晚上、做市商把報價撤走的時候,你拿 50 BTC 來這麼幹試試。你可能掃穿十個檔位,最後的平均價比初始最優賣價高出 $200。相對於深度的下單規模,才是一切的關鍵。

限價單把這個取捨反了過來。「買 2.0 BTC,但只在 $67,400 或更低的價格成交。」你的訂單進入訂單簿的買方一側,停在那裡,所有人都看得見,等著某個賣家降到你的價格。也許它幾分鐘就成交。也許要好幾天。也許市場拉漲,你的訂單根本不會成交——你在價格上省了錢,卻徹底錯過了這筆交易。

費率結構反映了這種動態。市價單消耗(take)流動性——它們拿走掛著的訂單,讓訂單簿變薄。沒有立即成交的限價單則提供(make)流動性——它們增加了讓所有人受益的深度。GaiaEx 對掛單方(maker)收取的費用低於吃單方(taker),具體數字在費率頁面上。這不是出於善心。深度好的訂單簿吸引更多成交量。成交量更多意味著價差更窄。價差更窄又吸引更多交易者。一個正反饋迴圈。

那你該用哪一種?這問題問錯了——你兩種都會用,取決於當下的時機。BTC 剛剛突破一個關鍵阻力位,你需要進場?用市價單,接受價差,往前走。你覺得 ETH 會回踩 $3,200 的支撐、想趁機吸籌?在 $3,210 掛限價買單,走開,過會兒再回來看。訂單簿不會評判你。

市價單 vs. 限價單 每種訂單型別如何與訂單簿互動 市價買入 「現在就成交——什麼價都行」 以市價買入 1.5 BTC 賣方一側(成交前): $67,510 × 0.42 BTC 已成交 ✓ $67,520 × 1.10 BTC 成交 1.08 ✓ $67,540 × 3.85 BTC 未觸及 成交明細 0.42 BTC @ $67,510 = $28,354.20 1.08 BTC @ $67,520 = $72,921.60 平均成交價:$67,517.20 · 滑點 ≈ $7 ✓ 即時成交 ✓ 數量有保障 ✗ 支付價差 ✗ 吃單方費率 適合:突破行情 · 止損 · 緊急離場 限價買入 「按我的價格或更優價格成交」 買 2.0 BTC @ $67,400 買方一側(當前): $67,480 × 0.85 BTC 最優買價 $67,470 × 2.30 BTC $67,460 × 1.75 BTC $67,400 × 2.00 BTC 你的訂單 ▸ 狀態:掛單中 —— 停在訂單簿裡 僅當價格跌到 $67,400 時才成交 ✓ 價格由你定 ✓ 掛單方費率 ✗ 可能不成交 ✗ 可能錯過行情 適合:波段入場 · 定投 · 耐心吸籌 市價單消耗掛著的流動性 · 限價單增加掛著的流動性
市價買單掃穿賣價檔位(左),而限價買單停在買方一側,等待賣家來匹配(右)。

價格-時間優先

撮合引擎只跑一條規則:價格-時間優先(price-time priority)。價格更優者勝。價格相同?誰先掛單誰勝。

三個賣家分別掛在 $67,510、$67,540、$67,580。一筆進來的市價買單會打中 $67,510 那一單。每次都是。沒有討價還價,沒有隨機,沒有偏袒。對側價格最優的訂單先成交,到此為止。

平價(tie)的情況時時發生。兩個賣家都在 $67,510,一個在 14:32:01.003 UTC 掛了 0.42 BTC,另一個在 14:32:01.017 UTC 掛了 0.80 BTC。第一個——早了 14 毫秒——會比第二個先成交。這就是為什麼高頻公司不惜花數百萬美元把伺服器與交易所撮合引擎並置(co-locate):當價格相同時,時間是唯一起作用的決勝因素。

具體到你身上,這意味著什麼?如果你在 $67,510 掛出一個限價賣單,而已經有另一位交易者的 0.42 BTC 坐在那裡,進來的買單會先吃掉他們的數量,才輪到你。你在排隊。想插隊,就改善你的價格——掛在 $67,509 賣出——或者搶在所有人之前到位。整場遊戲就是這麼回事。

GaiaEx 的引擎以亞毫秒級(sub-millisecond)的速度處理訂單。在 2024 年 3 月那波漲勢中,BTC 衝破 $73,000、訊息流飆升到每秒數萬筆訂單時,撮合引擎一拍都沒亂。它在市場動得最快的時候最為重要——而這恰恰是那些慢半拍的系統最容易把你坑了的時候。

讀懂深度:買賣牆、薄訂單簿與陷阱

單個價格檔位是有用的。累計深度——在距最優價格某個區間內總共停著多少成交量——則更有用。深度圖(depth chart)把它畫了出來:買價向左堆疊,賣價向右堆疊,兩條曲線在當前價格處幾乎相吻。

陡峭的曲線意味著成交量集中在訂單簿頂端附近。平緩、逐漸的斜坡意味著它分佈得很薄。曲線的形狀告訴你,給定規模的市價單實際上會把價格推動多少。

有幾種形態值得留意。

買牆(buy wall)出現在某人在單一檔位停放了一筆鉅額買單時——周圍各檔位每檔只掛 2–3 BTC,而 $66,000 這一檔卻掛著 120 BTC。那就是在一個價格上超過 $8M 的買盤支撐。賣家必須把它全部啃穿,價格才能往下走。這些牆往往聚集在整數關口和已知的技術支撐位附近,功能上像一道地板——直到它被撤掉。

賣牆(sell wall)反過來運作。在一個通常每檔只顯示 1–2 BTC 的訂單簿上,$70,000 處堆著 80 BTC。買家需要十足的信念(和資金)才能吸收掉那些供給。當一道賣牆終於被攻破時,之後的走勢往往很暴烈——它後面什麼都沒有。一片虛空。

薄訂單簿(thin book)是另一種風險。在非活躍時段——試試周日凌晨 3 點 UTC——或在某個重大宏觀資料釋出之前,做市商會撤走他們的報價。深度蒸發掉。一筆在倫敦時段只會造成 $7 滑點的 5 BTC 市價單,此時也許會把價格推動 $200。如果你正在往一個薄訂單簿裡下單,限價單不是可選項。而是保命用的。

牆可能是假的。幌騙(spoofing)——掛出一筆鉅額訂單來模擬需求或供給,然後在它成交之前撤單——至今仍是個真實存在的問題。那筆訂單從一開始就沒打算成交。它是個虛張聲勢,意在把其他交易者逼著採取行動。Navinder Sarao 在 2010 年閃崩(flash crash)期間的幌騙讓他被罰了 $25.7M,但這種做法在監管更松的場所依然存在。對大額掛單保持健康的懷疑:價格一靠近,它們可能就消失了。

GaiaEx 上的訂單簿

GaiaEx 為每一個上線的市場執行一箇中央限價訂單簿(CLOB)。現貨交易對、永續合約、代幣化的真實世界資產——它們全都匯入同一個按價格-時間優先運作的撮合引擎。和 CME 或納斯達克(Nasdaq)相同的架構,只是為 7×24 小時的加密市場做了適配。

深度視覺化透過 WebSocket 實時推送。你螢幕上看到的,反映的是幾毫秒之內的真實訂單簿狀態——不是三秒前的快照,也不是某種近似。它是貨真價實的東西。在高波動期,你可以看著檔位每秒出現又消失幾十次,既迷人,又有點嚇人。

除了市價單和限價單,平臺還支援止損限價單、止盈單和追蹤止損單。一個掛在 $66,000 的止損限價單在最近成交價觸及你的觸發價之前什麼都不做——然後它轉換成一個限價單並進入訂單簿。在觸發價被觸發之前,它對其他參與者是不可見的。這對於保護頭寸、又不把你的離場計劃昭告天下很有用。

每一筆成交都附帶時間戳、確切價格、撮合數量,以及一個清楚的標籤,註明你支付的是掛單方還是吃單方費率。沒有「價格改善」(price improvement)的玄機。沒有訂單內部化(order internalization)。訂單簿就是訂單簿,回執也對得上。

有一件事沒人會告訴新手:讀懂訂單簿是一項技能,而且會複利累積。一個交易者,如果知道深度坐在哪裡、價差在凌晨 4 點 UTC 與下午 2 點 UTC 是如何拉寬的、以及何時該用限價單何時該用市價單,就會持續地拿到比盲目交易的人更好的價格——哪怕用的是同一套策略。優勢不在策略裡。而在執行裡。下一次美聯儲(the Fed)利率決議時,在 GaiaEx 上開啟 BTC/USDT 深度圖,就這麼看著。你不需要交易。只要觀察當 50 萬人在同一時刻有同一個念頭時,訂單簿是如何表現的。