Release 0.8.9

2022-11-14

This release has a number of potentially breaking changes. Please review the descriptions here before updating the software.

Strategy Parameters (NEW)

It is now possible to manage strategy parameters. This may allow you to

  • Control strategies, e.g. start, stop, set target position, etc.

  • Update model parameters in real-time

  • Persist values between restarts

  • Capture all changes into the event-log

Design documentation can be found here.

REST Interface (NEW)

A generic web-interface is now available to query gateways for internal state, for example

  • Session information

  • List of users and connection state

  • List of accounts

  • Stream status

  • Gateway status

  • Public data (reference data, market status, top of book, etc.)

  • Private data

  • Custom data

  • Strategy parameters

Note

This is designed to have zero impact on the latency of the core operation of the gateway.

Reference documentation can be found here.

Event-Logs (CHANGE)

Warning

Filenames and directories now use public and private (instead of md and om).

To better align with new conventions, you may want to move existing md/om directories to public/private after you update the software.

Note

It is not a strict requirement to rename/move directories.

The software should automatically find the event-logs following previous naming conventions.

Prometheus queries may also have to be updated

  • If you have been explicitly filtering on category being md or om.

API (CHANGE)

Warning

ParametersUpdate (plural) was renamed from ParameterUpdate (singular)

This should be a simple code-change and your project should then build again.

Gateways

General (CHANGE)

Warning

--service_listen_address was renamed from --metrics_listen_address.

There is backwards compatibility: A warning will appear if you still use --metrics_listen_address.

Note

Please update to using --service_listen_address as this compatibility mode will later be removed.

Warning

--metrics_query_path was removed.

roq-binance (NEW)

New flags have been introduced to deal with the HTTP 403 response code.

Order Download (CHANGE)

Warning

A fix was added to prevent clients from sending order requests during download (between DownloadBegin and DownloadEnd).

The reason for enforcing this restriction is that it should not be possible to modify the state of cached objects while these objects are being downloaded.

There are some strategies to follow if the goal is to auto-cancel downloaded orders:

  • Use the OrderCancelPolicy when configuring the client. This can instruct the gateway to try and auto-cancel orders upon detecting client disconnect.

  • Collect the order_id’s during download and send the order cancelation requests immediately upon seeing DownloadEnd.

    Note

    Collection should potentially take into account that download is per-account.

Cache (Filesystem) (CHANGE)

Warning

The --auth_cache_dir flag has been removed. The new flag is --cache_dir.

It became necessary to cache the history of mapped id’s from user names.

Since a filesystem cache for authentication tokens is also needed, it seems natural to align these use-cases.

The sub-directory structure is now <cache_dir>/<name>/<type>, where type is currently one of auth and config.

Note

The previous naming convention for authentication tokens were <auth_cache_dir>/<name>.json.

Users (Gateway Configuration) (CHANGE)

Due to user id’s being encoded into the ClOrdId sent to the exchange, it became apparent that the mapping from name to id must not change between gateway sessions.

A new cache directory has been introduced to retain the history of mappings from name to id.

CHANGELOG

Milestone on GitHub.

Added

  • Strategy parameters (Server) (#258).

  • Publish event-log metrics (Server) (#290).

Changed

  • Throttle downloading of orders and fills (KuCoin) (#298).

  • Event-log filenames now use public/private instead of md/om (Server) (#297).

  • Delay initial authentication request (Server) (#296).

  • Now using --cache_dir instead of --auth_cache_dir (Server) (#289).

  • Improved error reporting when parsing flags (Core) (#285).

Fixed

  • Unable to parse datetime (Kraken) (#295).

  • OrderAck was missing when HTTP response was HTML (instead of JSON) (Binance) (#293).

  • Order action requests should be rejected while download is in progress (Client) (#291).

  • Mapping of user name to id must be persisted (Server) (#287).

  • Prevent possible errors by computing max_order_id outside loop over accounts (Server) (#286).

Other

  • Remove deprecated functions (API) (#281).