v1.181.0
nautechsystems/nautilus_traderv1.181.0Dec 2, 2023by github-actions[bot]
AI Summary
The update adds Python 3.12 support and Rust-based components like generic SQL database support, identifier generators, and OrderFactory.
Key Highlights
- Rewrote Interactive Brokers integration documentation
- Added Python 3.12 support
- Added generic SQL database support with sqlx in Rust
- Added identifier generators and OrderFactory in Rust
Breaking Changes
- Consolidated all data submodules into one data module
- Moved OrderBook and Currency modules
- Renamed MsgPackSerializer to MsgSpecSerializer
New Features
- Python 3.12 support
- Generic SQL database support
- Rust identifier generators
- Rust OrderFactory
Full Release Notes
# NautilusTrader 1.181.0 Beta Released on 2nd December (UTC). This release adds support for Python 3.12. ### Enhancements - Rewrote Interactive Brokers integration documentation, many thanks @benjaminsingleton - Added Interactive Brokers adapter support for crypto instruments with cash quantity, thanks @benjaminsingleton - Added `HistoricInteractiveBrokerClient`, thanks @benjaminsingleton and @limx0 - Added `DataEngineConfig.time_bars_interval_type` (determines the type of interval used for time aggregation `left-open` or `right-open`) - Added `LoggingConfig.log_colors` to optionally use ANSI codes to produce colored logs (default true to retain current behavior) - Added `QuoteTickDataWrangler.process_bar_data` options for `offset_interval_ms` and `timestamp_is_close` - Added identifier generators in Rust, thanks @filipmacek - Added `OrderFactory` in Rust, thanks @filipmacek - Added `WilderMovingAverage` in Rust, thanks @ayush-sb - Added `HullMovingAverage` in Rust, thanks @ayush-sb - Added all common identifier generators in Rust, thanks @filipmacek - Added generic SQL database support with `sqlx` in Rust, thanks @filipmacek ### Breaking Changes - Consolidated all `data` submodules into one `data` module (reduce binary wheel size) - Moved `OrderBook` from `model.orderbook.book` to `model.book` (subpackage only had this single module) - Moved `Currency` from `model.currency` to `model.objects` (consolidating modules to reduce binary wheel size) - Moved `MessageBus` from `common.msgbus` to `common.component` (consolidating modules to reduce binary wheel size) - Moved `MsgSpecSerializer` from `serialization.msgpack.serializer` to `serialization.serializer` - Moved `CacheConfig` `snapshot_orders`, `snapshot_positions`, `snapshot_positions_interval` to `NautilusKernelConfig` (logical applicability) - Renamed `MsgPackSerializer` to `MsgSpecSeralizer` (now handles both JSON and MsgPack formats) ### Fixes - Fixed missing `trader_id` in `Position` dictionary representation, thanks @filipmacek - Fixed conversion of fixed precision integers to floats (should be dividing to avoid rounding errors), thanks for reporting @filipmacek - Fixed daily timestamp parsing for Interactive Brokers, thanks @benjaminsingleton - Fixed live reconciliation trade processing for partially filled then canceled orders - Fixed `RiskEngine` cumulative notional risk check for `CurrencyPair` SELL orders on multi-currency cash accounts