Release 0.9.7¶
2023-09-18
A TUI tool was added to support CME’s somewhat manual certification process. The CME gateway has successfully passed CME’s certification tests.
This release contains a number of changes meant to support order routing. More advanced features will be added with the upcoming releases.
API Changes¶
order_id¶
The order_id’s are now 48 bits wide and must therefore be specified as uint64_t.
Warning
This is a BREAKING CHANGE.
You MUST update your order management code to use uint64_t for order_id’s.
client_order_id¶
A new client_order_id field has been added to all order messages.
This field contains the initial ClOrdID sent to the exchange.
strategy_id¶
A new strategy_id field has been added to all order messages.
This field can be used to identify a strategy or a client (in the case of order routing).
Note
Future changes will allow a more dynamic approach to routing order events based on
the strategy_id.
Gateway Changes¶
client_order_id¶
The protocol (encoding/decoding) has changed to accomodate the wider order_id range.
New fields have been added to OrderAck and OrderUpdate to communicate the initial client_order_id
used by the gateway to identify the order.
See also
routing_id¶
Warning
A future release will no longer append routing_id to the generated ClOrdID.
There will be alternative solutions to persist this field for mapping purposes.
Secrets¶
It is now possible to use a shared file containing secrets for many gateways
Lookup is by name, e.g.
[deribit-1]
A1 = "some_secret"
[deribit-2]
A1 = "another_secret"
CME¶
The iLink implementation has passed CME’s certification tests.
Warning
Please note that OrderRequestID no longer can pack the request version number.
This could potentially have an impact when pipelining multiple order modification requests.
Coinbase-PRO¶
The market data (WS) connection now uses authenticated subscriptions.
FIX Proxy¶
A new project making it possible to implement a front to the FIX Bridge.
This project will likely have to be forked for custom integration work. This is the primary reason why it has been open sourced.
Risk Management¶
Warning
This is currently an EXPERIMENTAL feature.
Support for custom external risk service (drop-copy) using gateway sequence number to synchronize risk limit updates.
See also
SBE¶
A SBE schema has been designed almost 1:1 with the C++ API.
A SBE multicast publisher has also been added.
See also
TUI¶
A TUI (Terminal User Interface) has been added allowing easy order management directly from your terminal.
See also
CHANGELOG¶
Added¶
Front-end to FIX Bridge (FIX Proxy) (#400).
Publish SBE market data messages using multicast (SBE Publisher) (#399).
SBE encode/decode library (SBE Codec) (#398).
Risk Manager template project (Risk Manager) (#343).
New TUI (Terminal User Interface) to manage orders (Tools) (#395).
strategy_idadded to order and trade (fill) messages (API) (#375).
Changed¶
Complete rewrite. New sub-projects for Roq services and monitoring solution. (Ansible) (#404).
Move order book utilities (from roq-core) (Utils) (#403).
Library to encode/decode Roq’s FlatBuffers messages (FIX Codec) (#402).
Library to encode/decode Roq’s FIX messages (FIX Codec) (#401).
ExecutionReport.order_id(37) will now matchOrder{Ack|Update}.client_order_id(FIX Bridge) (#394).ExecutionReport.order_id(37) will now always contain a non-empty string (FIX Bridge) (#393).Market data (WS) connections now require authentication (Coinbase-PRO) (#391).
Adding
OrderAck.client_order_idandTradeUpdate.client_order_id(API) (#389).Secrets file should support by-name (Server) (#385).
Prefer conda to mamba (Scripts) (#382).
OrderRequestIDhas no space for version afterorder_idincreased to 48 bits (CME) (#379).ClOrdIDchange due toorder_idchanges (Server) (#378).order_idmust beuint64_t(API) (#377).MBO snapshot could not be released if no incremental updates were received (CME) (#376).
Fixed¶
roq-importdid not validateMarketByPriceUpdate(Tools) (#406).TCP fragmentation could cause freeze (CME) (#392).
Incorrect HTTP request parsing when body sent on different TCP segment (Web) (#390).
CancelAllOrderscould cause unhandled exception (CME) (#387).roq-importsilently failed due to incorrect read-buffering (Tools) (#386).Missing multiplier when downloading trades (Deribit) (#374).