交易基礎與市場結構
訂單簿怎麼看?從 Bid、Ask 到市場深度與滑價完整實作
用 Binance 真實訂單簿辨認買賣盤、最佳價與累積深度,親手計算價差、平均成交價和滑價,再依可接受結果選擇委託方式。
讀完這篇,你應該能在 Binance 現貨頁找到訂單簿,分清楚賣盤與買盤,算出當下價差,並用逐檔深度估算一筆市價單可能得到的平均成交價。最後,你會得到一套可直接使用的下單前檢查流程,而不是只會看紅綠數字猜漲跌。
先確定你看的交易對與數量單位
訂單簿只對當前交易對有效。以 BTC/USDT 為例:
- Price(USDT):每 1 BTC 的報價,以 USDT 表示。
- Amount(BTC):該價位等待成交的 BTC 數量。
- Total:介面可能顯示該檔或累積數量,必須先看欄位標題與顯示模式。
切換成 BTC/USDC、ETH/USDT 或永續合約後,數值、深度和結算邏輯都會改變。不要拿另一個交易對的深度來估算目前這一筆委託。
在 Binance 真實介面找到訂單簿

桌面版現貨頁的訂單簿位於左側。紅色區域是等待賣出的 Ask,綠色區域是等待買入的 Bid;兩者中間通常顯示最近成交價。截圖來自未登入的 Binance 公開交易頁,沒有帳戶、餘額或個人資料。價格只是截圖當下的畫面,不是即時報價,也不是交易建議。
介面版面可能調整,但辨認順序不變:先看交易對,再看 Price 和 Amount 的單位,最後才讀紅綠兩側的數量。
Bid、Ask、最佳價與最新價不是同一件事
- Bid(買盤):買方已掛出的買入價格與數量。
- Ask(賣盤):賣方已掛出的賣出價格與數量。
- 最佳買價 Best Bid:買盤中最高的價格。
- 最佳賣價 Best Ask:賣盤中最低的價格。
- 最新成交價 Last Price:上一筆已完成交易的價格。
如果 Best Bid 是 99.90、Best Ask 是 100.10,買方此刻用市價單通常先碰到 100.10 的賣盤;賣方用市價單則通常先碰到 99.90 的買盤。最新價即使顯示 100.00,也不代表你能以 100.00 成交。
買賣價差怎麼算
絕對價差公式是:
價差 = Best Ask − Best Bid
沿用上例:
100.10 − 99.90 = 0.20 USDT
比較不同幣價時,應改看百分比價差:
中間價 = (Best Ask + Best Bid) ÷ 2
價差百分比 = 價差 ÷ 中間價 × 100%
因此中間價為 100.00,價差百分比為 0.20%。百分比價差較容易比較不同交易對,但仍未包含手續費與跨檔成交造成的滑價。
市場深度要逐檔累加,不能只看第一檔
假設賣盤如下:
| Ask 價格 | 該檔可賣數量 | 累積數量 |
|---|---|---|
| 100.10 | 0.20 | 0.20 |
| 100.20 | 0.30 | 0.50 |
| 100.40 | 0.40 | 0.90 |
| 100.80 | 0.80 | 1.70 |
要市價買入 0.65 單位時,第一檔只有 0.20,不足的部分會繼續吃第二、第三檔:
- 0.20 × 100.10 = 20.02
- 0.30 × 100.20 = 30.06
- 0.15 × 100.40 = 15.06
總成交額為 65.14,加權平均成交價為:
65.14 ÷ 0.65 = 100.2154
這才是未計費用的預估平均成交價。畫面最上方的 100.10 只是第一小部分能取得的價格。
滑價要用平均成交價計算
若以送單前 Best Ask 100.10 為基準:
買入滑價率 = (平均成交價 − 基準價) ÷ 基準價 × 100%
代入上例:
(100.2154 − 100.10) ÷ 100.10 × 100% ≈ 0.115%
實際結果仍可能不同,因為你讀取畫面到送出委託之間,其他人可以成交、掛單或撤單。這個計算的用途是判斷委託是否相對深度過大,不是保證成交價。
用 0.1%、0.5% 與 1% 深度做壓力測試
先以中間價為中心,累加價格偏離不超過 0.1%、0.5% 和 1% 的數量或成交額,再與自己的委託比較。例如,你的市價買單若已占上方 0.5% 範圍內可見賣盤的 60%,就不能只用 Best Ask 預估成本。
再做一個保守情境:假設送單前可見深度突然減半,重新計算平均成交價。如果結果超出可接受成本,應縮小委託、分批執行,或改用帶價格邊界的限價單。分批也不是免費方案;每一批之間市場可能移動,且可能增加操作和費用成本。
深度圖與訂單簿的關係
深度圖只是把訂單簿的累積量畫成曲線:橫軸是價格,縱軸是累積數量或價值。曲線突然變陡,表示某段價格聚集了較多可見委託;它不代表該價格一定守得住。
要核對深度圖,回到訂單簿查看三件事:聚集量距離目前價格多遠、數量是否持續存在、接近時是否真的出現成交。只看一張靜態深度圖,無法區分穩定流動性與短暫掛單。
為什麼「買牆/賣牆」不能直接當支撐壓力
訂單簿展示的是尚未成交、仍可撤銷的意願。大額掛單可能在價格接近前取消、移到別的價位、拆分,或只顯示部分數量。相反地,冰山單或演算法拆單也可能讓實際流動性比畫面更多。
因此不能因為看到一排大數字,就斷言價格會反轉。較可靠的觀察需要同時查看:
- 該價位的掛單是否在多個時間點持續存在;
- 價格靠近時,掛單是被成交還是突然撤走;
- 成交紀錄是否真的在該價位出現足夠交易量;
- 掛單是否反覆移動,始終與市場保持距離。
這些現象仍只能描述市場行為,不能保證下一步走勢。
限價單進入訂單簿後,還要考慮排隊
多數集中式交易所採價格優先,同價位再按時間優先。你把限價買單掛在 99.90,不代表畫面成交到 99.90 時就一定輪到你;同價位較早掛入的數量可能先成交。
如果取消後重新掛單,通常會失去原本的排隊位置。若限價買單直接跨過 Best Ask,它可能立刻與現有賣盤成交,成為 Taker,而不是留在簿上當 Maker。委託名稱本身不保證 Maker 身分。
按目標選擇委託方式
| 你的真正限制 | 可考慮的方法 | 必須接受的代價 |
|---|---|---|
| 優先快速成交 | 市價單,先估算逐檔深度 | 平均成交價不確定,可能滑價 |
| 不接受超過某個買價或低於某個賣價 | 限價單 | 可能部分成交或完全不成交 |
| 委託相對深度太大 | 縮小或分批,逐批重估深度 | 市場在各批之間移動,執行時間變長 |
| 只有完整數量成交才有意義 | 查看產品是否提供 FOK | 深度不足時整張取消 |
如果「沒成交」帶來的後果比小幅滑價更嚴重,就不能只追求最低價格;如果超過某個價格就使計畫失效,就不能只追求速度。先寫出不可接受的結果,再選工具。
下單前到成交後的完整流程
- 確認頁首交易對與市場類型,例如 BTC/USDT Spot。
- 核對 Price、Amount、Total 分別使用哪一種資產。
- 記下 Best Bid、Best Ask,算出絕對與百分比價差。
- 從最佳價開始累加足以覆蓋自己委託的檔位。
- 算出預估成交額、加權平均成交價與滑價率。
- 把手續費加入總成本,再做深度減半的壓力測試。
- 依「價格邊界」和「未成交後果」選市價、限價或拆單。
- 送單後查看已成交量、未成交量、平均成交價與費用;不要只看委託已提交。
常見問題與修正方式
| 問題 | 真正原因 | 修正方式 |
|---|---|---|
| 最新價是 100,成交卻高於 100 | 市價買單跨越多個 Ask | 用逐檔數量重算加權平均價 |
| 看起來深度很多,仍有明顯滑價 | 大量掛單離目前價格太遠 | 只累加可接受偏離範圍內的深度 |
| 限價碰到卻沒有完全成交 | 同價位前方仍有排隊量 | 查看已成交與剩餘數量,決定等待、取消或改價 |
| 把 Total 當成單檔數量 | 顯示模式是累積值 | 核對欄名與深度顯示模式 |
| 看到大牆就追單 | 掛單可隨時撤銷 | 同時看撤單、實際成交和時間變化 |
| 小數位輸入被拒絕 | 價格或數量不符合 tickSize/stepSize | 依當前交易對規則調整價格與數量步長 |
完成檢查表
- 我能指出當前交易對的基礎資產與計價資產。
- 我能分辨 Best Bid、Best Ask 與最新成交價。
- 我能計算絕對價差與百分比價差。
- 我能逐檔累加深度並算出市價單的平均成交價與滑價。
- 我知道可見買賣牆可以撤銷,不能單獨預測走勢。
- 我會在送單後核對實際成交量、平均價格、剩餘數量與費用。
以上六項都能完成,才算真正讀懂訂單簿,而不是只認得紅綠顏色。
延伸閱讀
核對資料
本文用於解釋交易介面與執行機制,不構成投資建議。訂單簿會持續變動,試算結果不是成交承諾。
