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).