v1.180.0
nautechsystems/nautilus_traderv1.180.0Nov 3, 2023by github-actions[bot]
AI Summary
Enhancements include improved internal latency for live engines, WebSocket headers, and UTC properties for futures and options expiration and activation.
Key Highlights
- Improved internal latency for live engines
- Added support_contingent_orders option for venues
- Added UTC properties for FuturesContract and OptionsContract expiration and activation
Breaking Changes
- Renamed expiry_date to expiration_ns (uint64_t UNIX nanoseconds)
- Changed Arrow schemas for FuturesContract and OptionsContract
- Dropped support for Python 3.9
New Features
- Support for contingent orders
- UTC properties for contracts
Full Release Notes
# NautilusTrader 1.180.0 Beta Released on 3rd November 2023 (UTC). ### Enhancements - Improved internal latency for live engines by using `loop.call_soon_threadsafe(...)` - Improved `RedisCacheDatabase` client connection error handling with retries - Added `WebSocketClient` connection headers, thanks @ruthvik125 and @twitu - Added `support_contingent_orders` option for venues (to simulate venues which do not support contingent orders) - Added `StrategyConfig.manage_contingent_orders` option (to automatically manage **open** contingent orders) - Added `FuturesContract.activation_utc` property which returns a `pd.Timestamp` tz-aware (UTC) - Added `OptionsContract.activation_utc` property which returns a `pd.Timestamp` tz-aware (UTC) - Added `CryptoFuture.activation_utc` property which returns a `pd.Timestamp` tz-aware (UTC) - Added `FuturesContract.expiration_utc` property which returns a `pd.Timestamp` tz-aware (UTC) - Added `OptionsContract.expiration_utc` property which returns a `pd.Timestamp` tz-aware (UTC) - Added `CryptoFuture.expiration_utc` property which returns a `pd.Timestamp` tz-aware (UTC) ### Breaking Changes - Renamed `FuturesContract.expiry_date` to `expiration_ns` (and associated params) as `uint64_t` UNIX nanoseconds - Renamed `OptionsContract.expiry_date` to `expiration_ns` (and associated params) as `uint64_t` UNIX nanoseconds - Renamed `CryptoFuture.expiry_date` to `expiration_ns` (and associated params) as `uint64_t` UNIX nanoseconds - Changed `FuturesContract` Arrow schema - Changed `OptionsContract` Arrow schema - Changed `CryptoFuture` Arrow schema - Transformed orders will now retain the original `ts_init` timestamp - Removed unimplemented `batch_more` option for `Strategy.modify_order` - Removed `InstrumentProvider.venue` property (redundant as a provider may have many venues) - Dropped support for Python 3.9 ### Fixes - Fixed `ParquetDataCatalog` file writing template, thanks @limx0 - Fixed `Binance` all orders requests which would omit order reports when using a `start` param - Fixed managed GTD orders past expiry cancellation on restart (orders were not being canceled) - Fixed managed GTD orders cancel timer on order cancel (timers were not being canceled) - Fixed `BacktestEngine` logging error with immediate stop (caused by certain timestamps being `None`) - Fixed `BacktestNode` exceptions during backtest runs preventing next sequential run, thanks for reporting @cavan-black - Fixed `BinanceSpotPersmission` value error by relaxing typing for `BinanceSpotSymbolInfo.permissions` - Interactive Brokers adapter various fixes, thanks @rsmb7z