Release 0.8.3

2022-03-22

Authentication

Mandatory with this release.

API

  • The cache utilities now supports GatewaySettings and GatewayStatus.

  • Header files have been renamed to .hpp (from .h).

  • Mask has been promoted to API (from utils)

  • String has been renamed (from string_buffer)

Order Download

There is now generic support for order download with the following features

  • StreamStatus supporting ORDERS is used to notify state changes. (A gateway may only create one such stream per account.)

  • OrderUpdate has an update_type field which can have the value SNAPSHOT (download) or INCREMENTAL (live update).

  • Downloaded orders will only be published while the stream status is not READY.

  • Live order updates will only be published while the stream status is READY.

Gateways

Several gateways have been updated to reflect this

  • Binance

  • Binance Futures

  • BitMEX

  • Bybit Futures

  • Deribit

  • FTX

  • Kraken Futures

  • OKX

FIX Bridge

The FIX Bridge has also been updated to support downloaded orders. (This is however non-trivial since the FIX protocol does not allow for a disconnected state where orders are in an “unknown” state.)

  • Clients will be disconnected when StreamStatus changes from READY.

  • Clients are again allowed to connect when StreamStatus changes to READY.

  • After reconnect, clients are expected to recover order state using OrderStatusRequest.

Note

This is opt-in using the --block_client_on_not_ready flag.

Algo Framework

Interfaces and changes have been prepared for the algo framework (scheduled for 2022-Q2).

The roq-cpp-samples project will track development and can be followed on GitHub.

Note

It is important to note that the roq-cpp-samples project will gradually demonstrate how the algo framework develops. In particular, libraries and implementations will change and eventually link to a roq-algo library.

CHANGELOG

Milestone on GitHub.

Added

Changed

  • Remove separator when appending routing_id to ClOrdID (Server) (#197).

  • Renamed header files to .hpp (API) (#195).

  • Order download (Server) (#39).

  • Order download (FIX Bridge) (#38).

  • Support redundant license manager configuration (Server) (#193).

  • Conda packaging should pin versions to match x.x.x (#189).

  • The --timer_freq flag was incorrectly defaulting to zero (Client) (#188).

  • Config file should separate account alias from real name (FTX) (#185).

Fixed

  • Incorrectly dispatching working order update when completed (BitMEX) (#196).

  • Outbound buffer was not flushed on forced disconnect (FIX Bridge) (#194).

  • Page alignment issues on macOS/ARM64 (Client) (#187).

  • Exception handler didn’t catch protocol error (FIX Bridge) (#184).

  • Invalid client order id’s when using routing_id (Binance) (#183).

Other

  • Now using Catch2 for testing (API)