Release 0.8.7¶
2022-08-22
Gateways¶
CME¶
The gateway now has market data support.
Conda¶
An overnight build process is now responsible for pushing updates to the unstable
channel.
All packages will have their (git revision) version number increased to ensure all packages are built against latest
conda-forge
whilst retaining historical immutability.
Rate Limiter¶
Using high/low water mark is optional and can be enabled by using the high_water_mark
and low_water_mark
fields when configuring rate limiters in the gateway config.
For example
[rate_limits]
[rate_limits.global]
type = "ORDER_ACTION"
aggregate = true
request_limit = 50
monitor_period = "120s"
ban_period = "5m"
high_water_mark = 40
low_water_mark = 25
The RateLimitTrigger
event has two new added fields: buffer_capacity
and remaining-requests
.
As before, when a rate limiter has been triggered, an event will be published now including
buffer_capacity == BufferCapacity::FULL
and remaining_requests == 0
.
In addition, an event can be published when the rate limiter gets near the trigger. The event will include
buffer_capacity == BufferCapacity::HIGH_WATER_MARK
and
remaining_requests == (request_limit - high_water_mark)
.
This event can only be triggered by a new order action.
The low water mark can only be triggered after the rate limiter has detected HIGH_WATER_MARK
or FULL
.
The event will include buffer_capacity == BufferCapacity::LOW_WATER_MARK
and
remaining_requests == (request_limit - low_water_mark)
.
This event will normally be triggered by a timer.
Finally, when configured, the following must hold true: 0 < low_water_mark < high_water_mark < request_limit
.
Authentication¶
The authentication message now includes the kernel name and release (same as uname -sr
from the command-line).
This information is necessary to centrally monitor when it’s possible to initiate the work on io_uring
.
Abseil-C++¶
We are now linking against abseil-cpp
from conda-forge.
Note
It is no longer necessary to downgrade the compiler to C++14 on macOS. This was previously the reason for separating flags into a separate static library.
API¶
Some methods have been deprecated from the cache::MarketByPrice
interface.
This is required to experiment with other storage formats than the currently used vector storage.
Warning
Please pay attention to any deprecation warnings and feel free to reach out if you have questions about alternative methods to use.
CHANGELOG¶
Added¶
Changed¶
Update to the 1.5.0 SBE/multicast protocol (Deribit) (#269).
Optimize the cache::MarketByPrice interface (API) (#267).
MbP updating optimized to also support Binance’s conflated feed (Core) (#265).
Now using
abseil-cpp
from conda-forge (API) (#261).Make the
RateLimiter
public (API) (#259).Drop fixed 12 decimal digits (FIX Bridge) (#256).
Support
ExecutionInstruction.PARTICIPATE_DO_NOT_INITIATE
(Binance) (#253).Add notional fields to
ReferenceData
(API) (#252).Rate limiter should publish alerts using high/low water marks (Server) (#251).