Skip to main content
每個市場都有一個中央限價訂單簿:所有掛著的買單在一側,所有掛著的賣單在另一側,按價格排序。當一筆新進訂單跨過兩側之間的缺口時,成交就發生了。 訂單簿在鏈上。它的狀態就是已提交鏈上狀態的一部分,所以所有人面對的是同一個訂單簿,任何節點都能精確重建它在任意區塊時的樣子。

結構

價差
最佳賣價
50,000 − 49,950 = 50中間價 49,975
最佳買價
一筆 1.0 的市價買單0.2 成交在 50,000
0.3 成交在 50,100
0.5 成交在 50,200
平均 ≈ 50,130,不是盤口顯示的
50,000。這段差額正是市價單
不會擺在你面前的成本。
賣單 — 賣方
買單 — 買方
50,2000.5
50,1000.3
50,0000.2
49,9500.4
49,9000.6
49,8001.2
最佳買價是買方願意支付的最高價。最佳賣價是賣方願意接受的最低價。兩者之間的缺口是價差,中點是中間價,多處拿它當參考,包括資金費率的溢價部分。 深度是每個價位上掛著的數量。它決定你的訂單是在盤口附近成交,還是一路吃到更差的價格。

優先順序

訂單按價格優先,其次時間優先成交。 價格很直白:出價更高的買方,排在出價更低的前面。時間才是這裡與多數交易場所不同的地方。 「時間」指你的訂單在已提交區塊序列中的位置,不是它到達某個節點的時刻。 同一區塊內的兩筆訂單有先後次序,而這個次序每個驗證者都能從共識已確定的資料裡算出來,結果完全相同。再近的網路距離也改變不了它。區塊之間,到達時間仍然重要;區塊之內,微秒級的競賽不存在。 排序規則進一步強化了這一點:同一區塊內撤單先於主動吃單執行,因此過期報價可以撤回,不會被跟撤單同時到達的訂單吃掉。

提交前先讀深度

你看到的報價是最佳買價和最佳賣價。如果你的訂單大於掛在那裡的數量,它們不是你能拿到的價格。 沿著上面那張訂單簿的賣單側往下走: 一筆 0.2 的市價買單全部在 50,000 成交。一筆 1.0 的市價買單會吃穿三檔——平均價格約 50,130,而不是盤口顯示的 50,000。 這就是為什麼市價單帶有一個界限,由你的數量實際會消耗的深度推導出來;也是為什麼把大單拆到時間或價格維度上,通常比一次吃掉更便宜。
在提交任何相對訂單簿偏大的訂單前,有個習慣值得養成:算出你的數量會觸及的最差價格,而不只是看盤口。這兩個數字之間的差,就是市價單隱藏起來的成本。

價格是整數

訂單簿價格是該市場最小價格變動單位(tick size)的整數倍,數量是最小數量變動單位(lot size)的整數倍。執行路徑上沒有浮點數——兩個節點之間只要有一個捨入差異,就是一次分叉。參見精度。

訂單簿看不到什麼

條件單不在訂單簿上。 停損、停利以及其他條件單存放在另一個盯著價格的儲存區。在觸發之前,它們不佔佇列位置,也不貢獻深度。 實際後果是:在快速變動的市場裡,真實深度可能比訂單簿顯示的更薄,因為價格穿過一簇觸發價,會把一批看不見的訂單同時變成真實訂單——而且全都在同一側。

後續閱讀

訂單類型

你能往訂單簿上放什麼,以及什麼會掛著、什麼會吃掉流動性。

市價單

由深度推導出的界限如何保護一筆市價單。

交易排序

為什麼同一區塊內撤單勝過主動吃單。

撮合

訂單簿在核心中如何組織與走訪。