Release 0.9.4¶
2023-05-04
This release was primarily about adding support for Bybit’s v5 protocol. New features have also been added to the Binance gateway, including support for multiple connections per account, each binding to a specific network interface.
Gateways¶
All¶
Flags¶
The --event_log_symlink
gateway flag will now default to true.
Important
This flag should not be used anymore as it will be removed with a future release.
Conda¶
We now recommend Mambaforge
due to lower memory requirements when installing packages.
Binance¶
Cancel Restrictions¶
The gateway now supports cancelRestrictions
.
The TOML configuration must then include something similar to this
[templates.cancel_order]
[templates.cancel_order.ON]
cancel_restrictions = "ONLY_NEW"
[templates.cancel_order.OPF]
cancel_restrictions = "ONLY_PARTIALLY_FILLED"
CancelOrder::request_template
will then accept either of the labels ON
or OPF
.
Multiple Connections per Account¶
The gateway now supports multiple connections per account.
Depending on the --ws_api
flag, one of the --rest_network_interfaces
and
--ws_api_network_interfaces
flags can be used to specify a comma-separated list of
network interface names.
This makes it possible to bind each connection to a local network interface supporting an internet gateway and, by extension, a potentially different public IP address.
Bybit v5¶
A new gateway is being developed to support Bybit’s v5 protocol.
Note
This gateway will eventually be renamed to roq-bybit and replace existing (separate) solutions for spot and futures.
API Changes¶
Order Requests¶
The request_template
field is now available on all of CreateOrder
,
ModifyOrder
and CancelOrder
.
The interpretation of this field is gateway specific and intended to support exchange request fields that do not oterhwise fit into a standard request template. These additional request fields can then be specified in the gateway TOML configuration file.
Warning
This is a POTENTIALLY BREAKING CHANGE due to CreateOrder::request_template
renamed from order_template
.
Order Update¶
OrderUpdate.order_template
has been removed.
This was done to avoid confusion with the newly introduced request_template
field from
CreateOrder
, ModifyOrder
and CancelOrder
.
Custom Metrics and Matrix¶
A new CustomMatrix
message type has been introduced to better support e.g. slow
calibration by one client and fast prediction by another client.
CustomMetrics
and CustomMatrix
has both been reviewed to better support
“age” through sending_time_utc
.
CustomMatrix
also includes a version number which could be used to synchronize
the updating of multiple matrices.
Both message types are now collected into the private event-log.
Ansible¶
Minimal Ansible scripts have been been added to more easily get started with devops.
Gateways¶
Installs gateways based on YAML configuration. The project is available from GitHub.
Monitor¶
Installs Podman, NGINX, Prometheus and Grafana. The project is available from GitHub.
CHANGELOG¶
Added¶
Changed¶
Recommend the Mambaforge installer (instead of Miniforge3) (All) (#351).
The
--event_log_symlink
flag will now default to true (Server) (#350).TopOfBook
should support incremental updates (Server) (#348).CustomMetrics
andCustomMatrix
messages should be collected into private event-log (Server) (#345).ReferenceData.security_type
now populated (Binance spot + futures) (#342).ReferenceData
now saved to both public and private event-logs (Server) (#341).Review
PositionUpdate
andFundsUpdate
to better correlate withOrderUpdate
andTradeUpdate
(API) (#340).StreamStatus
should include connection details (API) (#337).Support bind to interface (IO) (#335).
Add
request_template
to order request structs (API) (#329).
Fixed¶
CustomMetrics
andCustomMatrix
sending should be blocked while downloading (Client) (#352).Experimental completion handler could cause segfault (IO) (#349).
Bind to unix socket already in use should result in failure (IO) (#347).
Broken price-caching for L2 books (BitMEX) (#339).
OrderUpdate
incorrect forMBOUpdate
with changed price and quantity (CME) (#338).Unable to parse HTTP status 418 (Web) (#334).
Possible
CancelOrder
race-condition (Binance) (#333).
Other¶
Drop
OrderUpdate.order_template
(API) (#330).