限價訂單

禁用自我交易時,加密貨幣交易所如何處理重疊訂單?

  • September 24, 2020

我不確定典型的“匹配引擎”如何處理重疊訂單(在我的例子中是 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(填寫整個訂單,或終止訂單。沒有部分填寫)、最小填寫大小等。因此,根據具體情況,您的體驗可能會略有不同。

引用自:https://quant.stackexchange.com/questions/58182