如何辨認主動成交一方:報價規則、逐筆規則與 Lee–Ready
了解報價規則、逐筆規則和 Lee–Ready 如何推斷主動買賣方,為甚麼價差內的成交較難判斷,以及交易所行情資料的限制。
本指南內容分類中的「買入」代表甚麼
簡短摘要
每宗成交都有買方和賣方。成交方向分類會推斷哪一方越過報價去發起成交。逐筆規則比較今次成交價與上一宗成交價,報價規則則比較成交價與買賣價差的中間價;Lee–Ready會結合報價位置,並在成交價正好處於中間價時使用逐筆規則。這是根據行情作出的推斷,並非參與者帳戶的持倉紀錄。
分類中的「買入」代表甚麼
在市場微觀結構研究中,標為 buy 通常表示買方主動拿取了賣方掛出的流動性。買方可能用市價盤,或可即時成交的委託,去承接 ask 上的等候賣盤。標為 sell 則表示賣方主動與 bid 上的等候買盤成交。無論標籤是買入還是賣出,每宗已完成的交易仍然同時有買家和賣家。
分析逐筆成交時,這個分別很重要。買方越過價差成交,通常稱為主動方或 taker;等候成交的賣方限價盤則是被動方或 maker。不過,算法產生的標籤不會說明主動買家是在開好倉、平淡倉、對沖風險,還是處理一張較大客戶委託的一部分。參與者的身份、目的和成交後承擔的淨風險仍然未知。
成交記錄和報價行情往往沒有直接標示由哪一方發起。因此,研究人員會從成交價、相鄰成交和當時的報價推斷方向。特別是歷史資料只保留成交價,或報價已經聚合而沒有交易所提供的主動方欄位時,應將標籤視作按某套規則得出的估算,而不是原始事實。
逐筆規則從連續成交價推斷方向
逐筆規則會比較今次成交價與上一宗成交價。價格上升屬 uptick,通常標為主動買入;價格下跌屬 downtick,通常標為主動賣出。這個方法不需要委託簿報價,所以部分只保存歷史成交價的資料集也可以使用。
如果價格沒有改變,就是 zero tick。常見做法是沿用最近一次非零價格變動的方向:上一個有效變動向上,相同價位的成交沿用買入標籤;向下就沿用賣出標籤。這樣可以處理多宗連續同價成交,但舊方向也可能延續多宗成交。如果此前沒有任何非零價格變動,逐筆規則就無法推斷方向;應保留為未分類,不要任意補上 buy 或 sell。
簡單規則不代表一定準確。價格可能因報價移動而上升,未必是最新一宗成交由買方發起。成交疏落、訊息未同步、成交按錯誤次序報告、開市競價和特殊成交條件,都會令推斷不穩。Lee和Ready認為逐筆規則有實用價值,尤其是報價沒有清晰答案時,但標籤質素仍取決於時間和資料範圍(Lee與Ready,1991)。
報價規則把成交價與價差中間價比較
已知最佳買價和最佳賣價時,中間價就是兩者的平均值。簡單報價規則把高於中間價的成交歸為主動買入,低於中間價的成交歸為主動賣出。成交價剛好等於中間價時,單靠這項比較不能判定方向,還需用逐筆規則等額外方法,或直接保留為未分類。如果成交在 ask,通常符合買方主動;在 bid,通常符合賣方主動,前提是成交和報價按正確時間配對。
價差內的成交較難推斷。bid和ask之間的價格可能來自改善報價的限價盤、隱藏流動性、內部撮合,或行情來源的時間差。單看價格較接近中間價哪一邊,不能證明哪方先送出委託。如果價差較闊,或中間價要按最小價格跳動幅度取整,相差一個 tick 就可能改變標籤,儘管經濟差異很小。
最重要的條件是報價在成交時仍然有效,而且屬於同一合約和交易場所。延遲行情、綜合報價或另一交易場所的報價,可能在引發報價更新的成交之後才出現。應先核對來源和時間戳記;期貨委託簿與逐筆成交的分別說明簿面狀態與已報告成交是兩種不同的市場資料。
Lee–Ready結合報價位置、價差內判斷和時間調整
經典Lee–Ready方法先比較成交價與相應報價:高於中間價為買入,低於中間價為賣出。成交正好在中間價時,則使用逐筆規則。更完整地說,在ask或更高成交通常歸為主動買入,在bid或更低成交通常歸為主動賣出;價差內但不在中間價的成交,原方法會歸向較接近的報價一邊。如果中間價成交的逐筆測試也沒有先前方向,觀察值可以保留為未分類。程式中的「正好在中間價」應配合價格精度和最小跳動幅度設定。
作者亦調整報價與成交的時間配對。研究發現,緊接成交之前記錄的報價可能已反映該宗成交;對1988年NYSE資料,他們採用成交時間至少五秒前出現的最近報價。這個原始延遲是針對當年行情記錄和同步問題的研究設定,不是現代電子市場的通用參數。對高頻行情而言,五秒前的委託簿狀態可能已截然不同。
自行實作時,應界定事件次序和時間戳記質素,而不是照搬五秒。成交和報價使用同一時鐘嗎?時間是交易所事件時間還是供應商接收時間?遇上相同時間戳記、成交之間有多次報價更新、訊息遺失或沒有報價時,程式怎樣處理?按行情源記載的訊息次序,或較短而有理據的延遲可能較合適。應在分析前作出及記錄選擇,不要事後調整以美化目標指標。
一個例子說明不同規則為何會有分歧
假設最佳買價是100.00、最佳賣價是100.04,中間價便是100.02。上一宗成交價是100.00。以下價格純粹用來示範分類方式,並非真實行情或交易結果。
下一宗成交價是100.01。由於100.01高於上一宗的100.00,逐筆規則會標為買入;但它低於100.02中間價,報價規則就會標為賣出。這不是計算錯誤,而是兩種規則使用不同證據。成交在價差之內時,單靠成交價未必足以肯定哪個標籤正確。
之後一宗成交在100.02,正好位於中間價。單靠報價規則無法決定方向,Lee–Ready便會回到逐筆規則。100.02高於上一宗的100.01,所以後備判斷是買入。如果下一宗成交在ask的100.04,按報價比較通常會歸為主動買入。實際程式仍要處理價格取整、零跳、過時報價和不一致的時間戳記。
這個例子不代表所有中間價成交都是買入,也不代表100.01的賣出標籤一定錯。它展示不同間接訊號可能互相矛盾,所以要記錄如何處理衝突。如行情源有交易所提供的主動方欄位,可能比單看一個成交價更直接,但仍要按該行情源的技術規格解讀。
假設三宗成交的數量依次為4、3、2。Lee–Ready的方向是賣、買、買,所以signed volume為−4 + 3 + 2 = +1;只用逐筆規則時三宗都是正號,總數為+9。成交價和數量不變,分類方法卻令總量相差8個單位。如有方向未定的成交,也要報告其比例及處理方法;這只是算術示例。

已發表的準確率只適用於特定樣本
Ellis、Michaely和O’Hara用Nasdaq的專有資料比較多種分類方法。在他們的樣本中,報價規則的準確率是76.4%,逐筆規則為77.66%,Lee–Ready為81.05%。這些數字只描述該資料集的比較結果,並非所有市場的準確率保證。時期、產品、時間戳記質素、參考標籤的建立方式,以及價差內成交的比例都會影響結果;後者特別難分類(Ellis、Michaely和O’Hara的研究)。
Jurkatis提出一種full-information方法,用較詳細資料將成交與報價配對。研究中,這個方法勝過被比較的標準規則,尤其是時間戳記精度較低時。這是單一研究的實證結果,不保證在其他交易所、合約或訊息協定中仍有優勢。Full-information配對要準確重建委託簿訊息;只收到聚合歷史資料的用戶未必能執行(Jurkatis,2022)。
比較分類方法時,如交易場所提供獨立方向標籤,可用來核對結果,並分開報告已分類、未能確定和剔除的成交比例。整體準確率可能掩蓋價差內成交或流動性偏低合約的錯誤。如果參考標籤本身是同一規則的另一個版本,這種比較就不能證實真正的主動方。
交易所原生欄位與推斷標籤並不相同
部分行情源會直接提供主動方欄位。CME MDP 3.0 Trade Summary文件說明AggressorSide欄位,用來標示主動方或沒有明確主動方:值1代表bid aggressor,值2代表ask aggressor。必須按相關訊息格式解讀代碼;沒有定義主動方時,不要自行改成買入或賣出(CME MDP 3.0文件)。
Nasdaq TotalView-ITCH在新增顯示委託的訊息中提供其買賣方向,成交訊息可連結至該委託的識別碼。如果被執行的掛單屬於賣方,與之成交的另一邊通常是主動買方;若掛單屬於買方,推論方向相反。但這是連接數條訊息後得出的方向,並非每個市場都有的通用主動方欄位。ITCH按訊息類型設有特殊規則:例如規格指出,Non-Cross Trade訊息內的Buy/Sell Indicator可能一律為「B」,不論掛單的實際方向。不要把名稱相似的欄位直接當成主動方;要依Nasdaq規格解碼正確訊息類型(TotalView-ITCH 5.0)。
交易所欄位只有在文檔定義、訊息版本和發布條件範圍內,才比啟發式推斷直接。其他市場可能完全沒有主動方欄位。
報價和成交的時間配對規則應與方向規則分開記錄。如果資料同時保存交易所事件時間、供應商接收時間和本地處理時間,不應事後挑最有利的一欄配對。綜合報價亦可能包含不同延遲和不同納入條件;若用來標記單一交易場所的成交,報告應交代為何該中間價適用。OFI和限價委託簿變化回答的是另一個問題:OFI按時間累計報價和隊列變化;signed volume則要先為個別成交加上方向才計算。
如何檢查自己的資料分類
先固定成交和報價來源、完整合約、交易場所、時區、時間戳記精度及訊息排序規則。然後記錄採用場內最佳報價還是綜合NBBO、逐筆規則用哪個成交序列,以及如何處理重複成交價、中間價、鎖定市場、競價成交、延遲報告或報價以外的價格。這些選擇會改變分類結果,必須能夠重複執行。
實際核對時,先確認每筆記錄所屬的交易場所、交易時段和合約月份,再查看原始序號和時間戳記。如果一秒內有多次報價更新,秒級時間未必足以判定成交時哪一個報價有效;應依feed定義的訊息次序配對,或將觀察保留為無法配對。成交更正和取消亦要分開處理,避免初始報告和修訂後的資料重複計算。如果研究資料只留下逐筆成交而沒有原始報價,這些問題通常不能事後補回。
不要要求算法為每宗成交都強行加上方向。缺少報價、報價鎖定、時間戳記不符、訊息次序錯亂,或逐筆規則未有此前的非零價格變動時,方向可能無法確定。未能分類的比例本身也反映資料可用範圍。用最近一宗成交或未來價格變動填補缺失標籤,可能不知不覺引入未來資訊。
人工核對時,可抽取一小段包含每宗成交前後原始訊息的樣本。比較最佳bid/ask、中間價、成交價、最近一次非零價格變動、訊息類型和可用的交易所欄位。分開查看ask、bid、價差內和中間價成交。檢查報價會否正由該宗成交引起,再以數種有理據的時間設定重新計算。敏感度分析能顯示結果是否穩定,但在沒有預設準則下,不應任意挑選最有利的版本。
評估準確率時,不要只看算法願意分類的記錄。如果某個方法把難判斷的價差內成交留作未知,它在剩下樣本中的準確率可能較高,但覆蓋比例亦可能較低。應在相同成交集合上同時報告準確率、未分類比例和有方向標記的成交量比例;時間戳記精度較低的觀察亦應另行分組。這樣才能分辨方法是減少錯誤,還是只避開較難分類的成交。
成交方向不等於持倉,也不是交易訊號
一種常見的加總方式是signed volume:S = Σ sᵢvᵢ,vᵢ是成交數量,推斷為主動買入時sᵢ = +1,主動賣出時sᵢ = −1。結果會隨時間窗口、交易場所範圍、數量單位,以及方向未定成交被剔除還是另行處理而改變。報告總數時亦要說明有效覆蓋比例和未知值處理方法。
主動買入可能是平淡倉,賣方可能在減少好倉,任何一方亦可能在對沖或只執行一張大委託的一部分。分類不會說明成交後誰持有風險、持倉時間有多長,亦不知道另一交易場所發生了甚麼。把一分鐘內的signed buy volume加總是另一種統計,取決於時間窗口和加總方法,並不是新開好倉清單。
即使方向標籤準確,也不能證明未來有回報。資料到達前價格可能已變,委託可能只部分成交,而價差、佣金、延遲、市場衝擊和離場價格可能抵銷短期走勢。研究實際執行成本需要另一套分析:implementation shortfall指南量度決策價格、實際成交和未成交數量之間的差距。
研究報告應列明分類規則、時間配對方式、未能確定的標籤比例、樣本特徵和驗證證據。如果資料只容許推斷主動一方,不要稱它為參與者意圖的直接證據。微觀結構標籤可用來描述交易流,但不是有保證的訊號、預測或結果。
常見問題
Q1標為「主動買入」的成交仍有賣方嗎?
有。這個標籤表示買方越過報價發起成交,賣方提供對應流動性。每宗完成的交易都有雙方。
Q2在ask價成交是否一定代表買方主動?
如果成交和報價時間配對正確,通常如此。但過時或不同步的行情、競價配對和特殊訊息類型都會影響解讀,應核對數據規格。
Q3可以把Lee–Ready當作交易訊號嗎?
算法只估算過往成交由哪一方發起,不會確認參與者持倉或未來回報。用於研究前,應檢查錯誤、未定情況、時間對齊和交易成本。
資料來源與延伸閱讀
回報問題
我們會準備一封包含本文連結的電郵。寄出後,Mark 才會收到你的回報
快速檢查
讀完指南後,用 3 道題檢查一下
問題 01
成交價與上一宗相同,而最近一次非零價格變動向下。逐筆規則會怎樣標記?
選擇答案即可查看解釋
期權術語表
清楚解釋從認購、認沽和期權鏈到 IV、希臘值、未平倉合約與最大痛點等核心期權術語
瀏覽期權術語表