v1.208.0
nautechsystems/nautilus_traderv1.208.0Dec 15, 2024by github-actions[bot]
AI Summary
This release adds specific parameters for Databento BBO quotes, STOP_LIMIT support for bracket orders, and `ShutdownSystem` command. It also standardizes order book naming and adds margin parameters to contract types.
Key Highlights
- Added specific `params` for Databento BBO quotes (bbo-1s, bbo-1m)
- Added `STOP_LIMIT` entry order type support for `OrderFactory.bracket`
- Added `ShutdownSystem` command for system-wide shutdown
- Renamed `Level` to `BookLevel` and `Ladder` to `BookLadder`
Breaking Changes
- Renamed `Level` to `BookLevel`
- Renamed `Ladder` to `BookLadder`
- Changed `FuturesContract`, `FuturesSpread`, `OptionsContract`, and `OptionsSpread` Arrow schemas to include margin parameters
New Features
- Added `params` for data subscriptions supporting Databento BBO
- Added `.group_bids` and `.group_asks` methods to `OrderBook`
- Added `.bids_to_dict` and `.asks_to_dict` methods to `OrderBook`
- Added `ShutdownSystem` command and `shutdown_system` method
- Added `max_ws_reconnection_tries` to Bybit configs
- Added margin parameters (`margin_init`, `margin_maint`, maker/taker fees) to contract types
- Added Databento symbology support for Interactive Brokers
- Improved support for STOP_MARKET and STOP_LIMIT orders for dYdX
Full Release Notes
# NautilusTrader 1.208.0 Beta 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 `OptionsContract` - Added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee` params and attributes for `OptionsSpread` - 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 `OptionsContract` Arrow schema (added `margin_init`, `margin_maint`, `maker_fee`, `taker_fee`) - Changed `OptionsSpread` 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