Deribit exchange matching engine is based on “first come first serve” principle. Orders execute in price-time priority as received by the matching engine after passing risk engine checks.
The matching engine can process thousands of orders per second, and also hundreds of orders per second from a single account. This is not a luxury but a necessity for any modern options exchange where hundreds of assets need to be quoted in real time. The average latency in the matching engine and risk engine is on average 0.6 ms for an order. So usually within 0.6ms after receiving an order, a confirmation message has been returned to the client. If an order executes immediately, an execution report will be included in this message.
Currently the matching engine only accepts limit orders.
The matching engine DOES NOT allow for self-trading. If an order is sent to the exchange that would execute immediately with an order from the same account in the orderbook, this order will be rejected. Note that the order will only be rejected if it would actually execute against another order in the same account. So an order overlapping with other orders in same account might still be accepted and executed if it would execute against other orders in the orderbook not from the same account.
Thanks to an average total latency for an order to pass risk engine and enter the orderbook via the matching engine of only 0.6ms it is possible to send hundreds of orders per second from a single account.
This post is also available in: Chinese (Simplified)