Overview
All option order books in Starbase will have a fixed-length speed bump, configured to be in the 1-10 millisecond range. Any aggressive order or quote, that is, an order or quote that would immediately match, will be made pending by a fixed duration before being entered into the order book. No other member except the owner of the order or quote is informed that this order or quote is pending. Pending orders and quotes are stored in a FIFO queue. Any jitter on speed bump timing will not cause pending orders or quotes to overtake each other.Purpose
In the presence of a speed bump, any liquidity providing member has a fixed period of time to detect if their orders or quotes are stale due to newly available information and to send in cancellations of those orders or quotes. In other words, latency arbitrage that prices in information on sub-millisecond timescales is avoided. Market makers can tighten their bid-ask spreads as a result. As Deribit’s market will go from a sub-second latency exchange to a sub-millisecond exchange, we have deemed it necessary to protect our option market makers with a speed bump to make sure our liquidity can transition and deepen.How Speed Bumps Work
New orders and quotes will be speed bumped if they aggress. Cancellations will never be speed bumped. For amendments, see the table below:| Resting | Pending | |
|---|---|---|
| Order amended to aggress | Removed from book and made pending | Made pending for speed bump duration again |
| Order amended to rest | Immediately amended | Immediately added to book |
| Quote replaced to aggress | Old quote removed and new quote made pending | Old quote removed and new quote made pending |
| Quote replaced to rest | Old quote removed and new quote added to book | Old quote removed and new quote added to book |
Mass Quotes
Quotes can only be entered viaMassQuoteRequest. Each quote in such a batch would be speed bumped individually, per side. This means that one side of the quote can immediately be added to the book, while the other side is pending.
Cancelling Pending Orders
Orders and quotes can be cancelled while pending. Starbase informs the member of pending and released orders and quotes. Both single cancels (CancelOrderRequest) and mass cancels (MassCancelRequest) immediately cancel pending orders. They are not converted to IOC orders. A speed-bumped order that is cancelled will not sweep the book; it is removed entirely before being entered.
Cancel arriving before the order
If a cancel reaches the matching engine before the order it targets (for example, when the order is still awaiting its risk check in the pre-trade risk (PTR) layer), the order is treated as IOC upon release. It will attempt to match against available liquidity and any unfilled remainder is immediately cancelled. Note that this situation is distinct from cancelling a speed-bumped order: a speed-bumped order has already passed the risk check and is queued in the matching engine, so a cancel on it results in immediate removal with no fills. The IOC treatment applies only when the cancel overtakes the order and the order has not yet entered the matching engine at all.Post-Only Attributes
To guarantee that trading members aiming to provide passive liquidity are not encumbered by the speed bump, Starbase has post-only-reject and post-only-amend order and quote attributes. These attributes guarantee an avoidance of the speed bump.Message Flow During Speed Bump
SBE Gateway
When a new order or quote aggresses and is speed bumped, the gateway immediately acknowledges the request with a queued status. A follow-up unsolicited message is sent once the speed bump period expires and the order or quote is entered into the book.| Event | Immediate response | Follow-up unsolicited message |
|---|---|---|
| New order speed bumped | NewOrderResponse (200) with orderState = 4 (queued) | OrderPlaced or OrderPlacedWithFills |
| Amend causes order to aggress | AmendOrderResponse (210) with orderState = 4 (queued) | OrderPlaced or OrderPlacedWithFills |
| Quote side speed bumped | MassQuoteResponse (230) with quoteStatus = 8 (Queued) per affected side | QuoteOrdersPlaced |
OrderPlaced is sent when the order is placed in the book without immediate fills. OrderPlacedWithFills is sent when the order matches immediately upon book entry. See Unsolicited Events for the full message specifications.
FIX Gateway
For speed bumped orders, the FIX gateway sends anExecutionReport (8) for every state transition, including the queued state.
| Event | First ExecutionReport (OrdStatus) | Second ExecutionReport (OrdStatus) |
|---|---|---|
| New order speed bumped | A (Pending New) | 0 (New) upon placement, or 1/2 if filled |
| Cancel/Replace speed bumped | E (Pending Replace) | 0 (New) upon placement, or 1/2 if filled |
OrdStatus values.