This release was primarily about adding drop-copy support and to validate (and adjust) the implementation of the new CME L3 order book implementation.
Preliminary support for the new WebSocket API.
Must be enabled with the
This is WORK IN PROGRESS. Please reach out if you want to use this new feature.
Binance, Binance Futures and Deribit#
Now possible to capture trades from orders not managed by the gateways.
These trades will always be captured into the event-log and it is possible to connect drop-copy clients to the gateway making it possible to monitor external activity.
TradeSummary messages were not previously used to update the L3 order book.
Adding support for these message types required a breaking change to the way Market by Order objects are being updated (sometimes we don’t get the side of an order).
cache::MarketByOrder interface now also offers various analytics methods.
Market by Order#
MBOUpdate structs have been changed to support CME’s TradeSummary
messages where order side can potentially be missing.
This is a BREAKING CHANGE if you have previously been collecting MbO market data.
Exchange Time / Sending Time#
Market data messages have been updated to better reflect the various timestamps used by the exchanges.
exchange_time_utcshould be the (UTC) timestamp from a matching engine, aka. transaction time.
sending_time_utcshould be the (UTC) timestamp attached to the message from an exchange service external to the matching engine.
This is a POTENTIALLY BREAKING CHANGE if you previously relied on
This particular field may no longer be populated when the timestamp is likely to be a sending time
and there is no available timestamp which is likely to originate from the matching engine.
In many cases it’s unclear what the origin of a timestamp is.
We will generally assign a timestamp to
exchange_time_utc when there’s no definition can be found.
This will ensure some continuity for historical data.
Clients can now get visibility to all order and trade updates managed by a gateway.
Clients may opt-in by using the
Gateway must have the
drop_copyoption (TOML configuration) set for the clients allowed to become drop-copy.
This is described in the drop-copy design document.
The trade-cache was reviewed and changed. It is now possible, for drop-copy clients, to receive current snapshot of trades having external origin.
utils::invert(side)didn’t work for
side == UNDEFINED(API) (#325).
roq-reducefailed for very large messages (Tools) (#323).
SBE TradeSummary wasn’t used for
STRATEGY_UPDATE(Binance Futures) (#319).
Simulator must dispatch