禁用自我交易時,加密貨幣交易所如何處理重疊訂單?
我不確定典型的“匹配引擎”如何處理重疊訂單(在我的例子中是 Deribit)。我對任何加密貨幣交易所如何處理這種情況同樣感興趣。使用者已將自我交易設置為禁用(與大多數使用者一樣)。
鑑於以下非常簡單的訂單…
SELL $504.... amount=20000.... owner=ALICE SELL $503.... amount=15000.... owner=BOB ------ BUY. $497.... amount=15000.... owner=BOB
如果 BOB 通過新的 GTC 限價單發送(不是發布)…
BUY... $505... amount=30000... owner=BOB
我的理解是,如果 BOB 發送的金額為 20000 或更少,訂單將完全針對 ALICE 執行,狀態設置為“已完成”而沒有任何錯誤(儘管訂單重疊和自我交易設置為禁用)。
但是 BOB 的新重疊訂單(金額=30000)會發生什麼?
(1) 拒絕,因為 BOB 的訂單沒有完全填寫請求的數量=30000,因此返回“order_overlap”錯誤,並且填滿了數量=0。
(2) 部分填充且狀態設置為“已取消”但填充量=20000
(3) 部分成交,狀態設置為“open”,fill_amount=20000,價格向下調整(對 ALICE 以 504.00 美元執行後至 502.50)
通常在受監管的交易所中,您不得跳過價格點。在您展示的情況下,BOB 的新買單將跳過 503 的價格點並以 504 美元執行。因此,即使訂單的時間限制不是 IOC/FAK ,訂單也會被取消/過期/拒絕。
因此,在您提到的兩種情況下(無論訂單數量是 20,000 還是 30,000),受監管的訂單都不會執行,因為它們正在跳過一個價格點。
這裡要記住的重要一點是,交易所應該提供價格時間訂單簿。採取以下場景:
SELL ALICE 10000 @ $503 at 17:00:00.000 UTC SELL BOB 5000 @ $503 at 17:00:00.010 UTC SELL DAVE 1000 @ $503 at 17:10:00.025 UTC SELL JANICE 1000 @ $504 at 16:58:00.000 UTC
在此,您可以看到雖然 JANICE 較早發送了訂單,但由於價格更差,它排在隊列的後面。現在假設 BOB 送出了一個新的 BUY 訂單 11000 @ $503,這將首先將 10000 與 ALICE 匹配。如果自我交易預防開啟,那麼它將跳過 BOB 自己的訂單並與 DAVE 匹配。
讓我們假設訂單大小是 15000。在受監管的交易所中,它將與 ALICE 和 DAVE 匹配,剩餘的 4000 將過期。
請注意,某些交易所提供了對訂單的額外控制,例如 FOK(填寫整個訂單,或終止訂單。沒有部分填寫)、最小填寫大小等。因此,根據具體情況,您的體驗可能會略有不同。