v1.199.0
nautechsystems/nautilus_traderv1.199.0Aug 19, 2024by github-actions[bot]
AI Summary
Enhanced live reconciliation robustness, added LogLevel::TRACE (Rust), and improved Binance HEDGE mode support.
Key Highlights
- Added LiveExecEngineConfig.generate_missing_orders reconciliation option.
- Added LogLevel::TRACE support (Rust only).
- Added Binance Futures support for HEDGE mode.
Breaking Changes
- Changed VolumeWeightedAveragePrice calculation formula.
- Changed OptionsContract constructor parameter ordering.
- Renamed snapshot_positions_interval to snapshot_positions_interval_secs.
- Moved snapshot configs to ExecEngineConfig.
New Features
- generate_missing_orders option
- Actor.subscribe_signal method
- on_signal(signal) handler
- Improved error modeling in Rust
Full Release Notes
# NautilusTrader 1.199.0 Beta Released on 19th August 2024 (UTC). ### Enhancements - Added `LiveExecEngineConfig.generate_missing_orders` reconciliation config option to align internal and external position states - Added `LogLevel::TRACE` (only available in Rust for debug/development builds) - Added `Actor.subscribe_signal(...)` method and `Data.is_signal(...)` class method (#1853), thanks @faysou - Added Binance Futures support for `HEDGE` mode (#1846), thanks @DevRoss - Overhauled and refined error modeling and handling in Rust (#1849, #1858), thanks @twitu - Improved `BinanceExecutionClient` position report requests (can now filter by instrument and includes reporting for flat positions) - Improved `BybitExecutionClient` position report requests (can now filter by instrument and includes reporting for flat positions) - Improved `LiveExecutionEngine` reconciliation robustness and recovery when internal positions do not match external positions - Improved `@customdataclass` decorator constructor to allow more positional arguments (#1850), thanks @faysou - Improved `@customdataclass` documentation (#1854), thanks @faysou - Upgraded `datafusion` crate to v41.0.0 - Upgraded `tokio` crate to v1.39.3 - Upgraded `uvloop` to v0.20.0 (upgrades libuv to v1.48.0) ### Breaking Changes - Changed `VolumeWeightedAveragePrice` calculation formula to use each bars "typical" price (#1842), thanks @evgenii-prusov - Changed `OptionsContract` constructor parameter ordering and Arrow schema (consistently group option kind and strike price) - Renamed `snapshot_positions_interval` to `snapshot_positions_interval_secs` (more explicitly indicates time units) - Moved `snapshot_orders` config setting to `ExecEngineConfig` (can now be used for all environment contexts) - Moved `snapshot_positions` config setting to `ExecEngineConfig` (can now be used for all environment contexts) - Moved `snapshot_positions_interval_secs` config setting to `ExecEngineConfig` (can now be used for all environment contexts) ### Fixes - Fixed `Position` exception type on duplicate fill (should be `KeyError` to align with the same error for `Order`) - Fixed Bybit position report parsing when position is flat (`BybitPositionSide` now correctly handles the empty string)