Release 0.9.3¶
2023-03-20
This release was primarily about adding drop-copy support and to validate (and adjust) the implementation of the new CME L3 order book implementation.
Gateways¶
Binance¶
Preliminary support for the new WebSocket API.
Must be enabled with the --ws_api=true
flag.
Note
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.
CME¶
CME’s 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).
The cache::MarketByOrder
interface now also offers various analytics methods.
API Changes¶
Market by Order¶
The MarketByOrderUpdate
and MBOUpdate
structs have been changed to support CME’s TradeSummary
messages where order side can potentially be missing.
Warning
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_utc
should be the (UTC) timestamp from a matching engine, aka. transaction time.sending_time_utc
should be the (UTC) timestamp attached to the message from an exchange service external to the matching engine.
Warning
This is a POTENTIALLY BREAKING CHANGE if you previously relied on exchange_time_utc
.
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.
Note
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.
Drop-Copy¶
Clients can now get visibility to all order and trade updates managed by a gateway.
Clients may opt-in by using the
--drop_copy
flag.Gateway must have the
drop_copy
option (TOML configuration) set for the clients allowed to become drop-copy.
This is described in the drop-copy design document.
Trades¶
The trade-cache was reviewed and changed. It is now possible, for drop-copy clients, to receive current snapshot of trades having external origin.
CHANGELOG¶
Added¶
Changed¶
Fixed¶
utils::invert(side)
didn’t work forside == UNDEFINED
(API) (#325).roq-reduce
failed for very large messages (Tools) (#323).SBE TradeSummary wasn’t used for
MarketByOrderUpdate
(CME) (#322).Unknown event-types
GRID_UPDATE
andSTRATEGY_UPDATE
(Binance Futures) (#319).Simulator must dispatch
MarketByOrder
toclient::Handler
(Client) (#317).