Released on 15th December 2024 (UTC).
Enhancements
- Added specific `params` for data subscriptions and requests which supports Databento `bbo-1s` and `bbo-1m` quotes (2083, 2094), thanks faysou
- Added support for `STOP_LIMIT` entry order type for `OrderFactory.bracket(...)`
- Added `.group_bids(...)` and `.group_asks(...)` for `OrderBook`
- Added `.bids_to_dict()` and `.asks_to_dict()` for `OrderBook`
- Added `ShutdownSystem` command and `shutdown_system(...)` method for components (system-wide shutdown for backtest, sandbox, or live environments)
- Added `max_ws_reconnection_tries` to `BybitDataClientConfig` (2100), thanks sunlei
- Added additional API functionality for Bybit (2102), thanks sunlei
- Added position and execution.fast subscriptions for Bybit (2104), thanks sunlei
- Added `max_ws_reconnection_tries` to `BybitExecClientConfig` (2109), thanks sunlei
- Added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee` params and attributes for `FuturesContract`
- Added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee` params and attributes for `FuturesSpread`
- Added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee` params and attributes for `OptionContract`
- Added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee` params and attributes for `OptionSpread`
- Improved Databento symbology support for Interactive Brokers (2113), thanks rsmb7z
- Improved support of `STOP_MARKET` and `STOP_LIMIT` orders for dYdX (2069), thanks Saransh-Bhandari
- Improved timer validation for `interval_ns` (avoids panicking from Rust)
Internal Improvements
- Added `.bids_as_map()` and `.asks_as_map()` for `OrderBook` in Rust
- Added type stubs for `core` subpackage
- Added type stubs for `common` and `model` enums
- Added type stubs for `common.messages`
- Added re-exports and module declarations to enhance code ergonomics and improve import discoverability
- Added subscriptions for block height websocket messages for dYdX (2085), thanks davidsblom
- Added sccache in CI (2093), thanks sunlei
- Refined `BybitWebSocketClient` private channel authentication (2101), thanks sunlei
- Refined `BybitWebSocketClient` subscribe and unsubscribe (2105), thanks sunlei
- Refined place order class definitions for Bybit (2106), thanks sunlei
- Refined `BybitEnumParser` (2107), thanks sunlei
- Refined batch cancel orders for Bybit (2111), thanks sunlei
- Upgraded `tokio` crate to v1.42.0
Breaking Changes
- Renamed `Level` to `BookLevel` (standardizes order book type naming conventions)
- Renamed `Ladder` to `BookLadder` (standardizes order book type naming conventions)
- Changed `FuturesContract` Arrow schema (added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee`)
- Changed `FuturesSpread` Arrow schema (added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee`)
- Changed `OptionContract` Arrow schema (added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee`)
- Changed `OptionSpread` Arrow schema (added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee`)
Fixes
- Fixed data requests when specifying `end` with no catalog registered (comparison between `pd.Timestamp` and `NoneType`)
- Fixed `BEST_EFFORT_CANCELED` order status report for dYdX (2082), thanks davidsblom
- Fixed order handling for `BEST_EFFORT_CANCELED` messages of dYdX (2095), thanks davidsblom
- Fixed specifying price for market orders on dYdX (2088), thanks davidsblom
- Fixed interest rate curve custom data and interpolation (2090), thanks gcheshkov
- Fixed `BybitHttpClient` error handling when not a JSON string (2096), thanks sunlei
- Fixed `BybitWebSocketClient` private channel reconnect (2097), thanks sunlei
- Fixed incorrect order side use in `BybitExecutionClient` (2098), thanks sunlei
- Fixed default `http_base_url` for Bybit (2110), thanks sunlei
---