v1.200.0
nautechsystems/nautilus_traderv1.200.0Sep 7, 2024by github-actions[bot]
AI Summary
Comprehensive dYdX integration, support for composite bar types, and introduction of RetryManagerPool for common retry logic.
Key Highlights
- Added comprehensive dYdX exchange integration.
- Added support for composite bar types aggregated from other bar types.
- Added RetryManagerPool to abstract common retry functionality.
Breaking Changes
- Renamed heartbeat_interval to heartbeat_interval_secs.
- Moved heartbeat_interval_secs config setting to MessageBusConfig.
- Changed WebSocketClient.send_text to take bytes instead of str.
- Changed CryptoPerpetual and CryptoFuture Arrow schemas.
New Features
- dYdX integration
- Composite bar types
- OrderBookDeltas.batch functionality
- InstrumentClose functionality
- recv_window_ms config setting for Binance
- multiplier parameter for CryptoPerpetual
Full Release Notes
# NautilusTrader 1.200.0 Beta Released on 7th September 2024 (UTC). ### Enhancements - Added dYdX integration (#1861, #1868, #1873, #1874, #1875, #1877, #1879, #1880, #1882, #1886, #1887, #1890, #1891, #1896, #1901, #1903, #1907, #1910, #1911, #1913, #1915), thanks @davidsblom - Added composite bar types, bars aggregated from other bar types (#1859, #1885, #1888, #1894, #1905), thanks @faysou - Added `OrderBookDeltas.batch` for batching groups of deltas based on record flags (batch until `F_LAST`) - Added `OrderBookDeltas` batching support for `ParquetDataCatalog` (use `data_cls` of `OrderBookDeltas` to batch with the same flags method as live adapters) - Added `RetryManagerPool` to abstract common retry functionality for all adapters - Added `InstrumentClose` functionality for `OrderMatchingEngine`, thanks @limx0 - Added `BacktestRunConfig.dispose_on_completion` config setting to control post-run disposal behavior for each internal backtest engine (`True` by default to retain current behavior) - Added `recv_window_ms` config setting for `BinanceExecClientConfig` - Added `sl_time_in_force` and `tp_time_in_force` parameters to `OrderFactory.bracket(...)` method - Added custom `client_order_id` parameters to `OrderFactory` methods - Added support for Binance RSA and Ed25519 API key types (#1908), thanks @NextThread - Added `multiplier` parameter for `CryptoPerpetual` (default 1) - Implemented `BybitExecutionClient` retry logic for `submit_order`, `modify_order`, `cancel_order` and `cancel_all_orders` - Improved error modeling and handling in Rust (#1866), thanks @twitu - Improved `HttpClient` error handling and added `HttpClientError` exception for Python (#1872), thanks @twitu - Improved `WebSocketClient` error handling and added `WebSocketClientError` exception for Python (#1876), thanks @twitu - Improved `WebSocketClient.send_text` efficiency (now accepts UTF-8 encoded bytes, rather than a Python string) - Improved `@customdataclass` decorator with `date` field and refined `__repr__` (#1900, #1906, #1909), thanks @faysou - Improved standardization of `OrderBookDeltas` parsing and records flags for crypto venues - Refactored `RedisMessageBusDatabase` to tokio tasks - Refactored `RedisCacheDatabase` to tokio tasks - Upgraded `tokio` crate to v1.40.0 ### Breaking Changes - Renamed `heartbeat_interval` to `heartbeat_interval_secs` (more explicitly indicates time units) - Moved `heartbeat_interval_secs` config setting to `MessageBusConfig` (the message bus handles external stream processing) - Changed `WebSocketClient.send_text(...)` to take `data` as `bytes` rather than `str` - Changed `CryptoPerpetual` Arrow schema to include `multiplier` field - Changed `CryptoFuture` Arrow schema to include `multiplier` field ### Fixes - Fixed `OrderBook` memory deallocation in Python finalizer (memory was not being freed on object destruction), thanks for reporting @zeyuhuan - Fixed `Order` tags serialization (was not concatenating to a single string), thanks for reporting @DevRoss - Fixed `types_filter` serialization in `MessageBusConfig` during kernel setup - Fixed `InstrumentProvider` handling of `load_ids_on_start` when elements are already `InstrumentId`s - Fixed `InstrumentProviderConfig` hashing for `filters` field