什麼是自我交易防止機制 (STP)?
自我交易防止機制 (STP) 是交易平台所採用的一項機制,旨在防止使用者不經意地與自身交易。在拍賣撮合中,理論上沒有直接對手方,所有已撮合的買單共同作為已撮合賣單的對手方。
為防止自我交易,如果使用者同時提交買入和賣出價格優於或等於成交價格的訂單,只允許其中一方的訂單進入撮合階段。為達此目的,系統會引入預先淨額 (pre-netting) 階段,用於計算該使用者的淨交易量。此淨交易量會進入後續撮合階段,而未撮合的數量 (即淨出額數量,或自我交易量) 則會保留至下一個拍賣窗口 (RETAIN)。
*請注意,自我交易防止機制 (STP) 僅適用於帳戶完全相同的情況。即使子帳戶屬於同一個母帳戶,不同子帳戶之間將不會觸發 STP。
預先淨額數量採用以下公式計算:
netted_quantity_for_user_at_certain_price_level = abs(quantity_eligible_bids - quantity_eligible_asks)
其中,quantity_eligible_bids 及 quantity_eligible_asks 分別指符合該價格的買單與賣單。淨額訂單方向由買單或賣單數量較大的一方決定。
針對淨出額數量 (即自我交易量),可能出現以下情境:
訂單的淨數量會先行撮合,淨出額數量則不會撮合。淨出額訂單會保留在訂單簿,並延續至下一個拍賣窗口,直到使用者取消或有訂單與對手方成交。
所有提交的訂單 (無論是限價單或其他訂單) 預設均會採用 STP 模式 RETAIN,即使用者端不需變更下單方式,所有訂單均適用 STP。
範例:
設定 — 成交價格 P* = 50
使用者 A 同時在買單與賣單都掛了價格優於或等於成交價格 P* 的訂單
買單與賣單。
買方數量 | 總買方數量 | 賣方數量 | 總賣方數量 | ||
買價 52 | 200 | 300 | 賣價 49 | 80 | 180 |
買價 50 | 100 | 賣價 50 | 100 | ||
使用者 A 本拍賣輪的淨數量 = |300 qty - 180 qty| = 120 qty | |||||
使用者 A 下輪拍賣的淨出額 = 180 賣方數量及 180 買方數量 | |||||
同時,使用者 B 此拍賣輪於 P* 掛賣單:
賣方數量 | 總賣方數量 | |
賣價 49 | 50 | 150 |
賣價 50 | 100 | |
使用者 B 本拍賣輪的淨數量 = 150 賣方數量 | ||
使用者 B 的淨出額 = 0 | ||
撮合結果:使用者 A 的 120 買方淨數量,P* = 50,會與使用者 B 的 120 賣方淨數量,P* = 50 進行撮合
保留結果:於 RETAIN 模式下,這部分重疊不會取消,會保留並延續至下一個拍賣窗口:
使用者 A 會 保留 180 買方數量及 180 賣方數量,P* = 50
使用者 B 會 保留 30 賣方數量,P* = 50,依標準拍賣保留規則
使用者 A 結果 | 120 買方淨數量與使用者 B 的 120 賣方數量成交,其他淨出額數量將延至下輪拍賣 | |
買方 | 訂單 1 | 訂單 2 |
200 買方數量 @ 價格 52 (狀態:部分成交 - 120 qty) | 100 買方數量 @ 價格 50 (狀態:新掛單) | |
賣方 | 80 賣方數量 @ 價格 49 (狀態:新掛單) | 100 賣方數量 @ 價格 50 (狀態:新掛單) |
使用者 B 結果 | 120 賣方數量已與使用者 A 的 120 買方淨數量成交,剩餘 30 賣方數量保留至下輪拍賣 | |
賣方 | 50 qty @ 價格 49 (狀態:已成交 - 50 qty) | 100 qty @ 價格 50 (狀態:部分成交 - 70 qty) |