v1.170.0
nautechsystems/nautilus_traderv1.170.0Mar 12, 2023by github-actions[bot]
AI Summary
Refactors data request interfaces by renaming `from/to_datetime` to `start/end` and improves strategy caching/order management.
Key Highlights
- Renamed `from_datetime` to `start` and `to_datetime` to `end`.
- Added `DataCatalogConfig` for cohesive data catalog configuration.
- Changed to immediately caching orders and order lists in `Strategy`.
- Added logging to file at core Rust level.
Breaking Changes
- Moved `backtest.data.providers` to `test_kit.providers`.
- Moved `backtest.data.wranglers` to `persistence.wranglers`.
- Moved `backtest.data.loaders` to `persistence.loaders`.
- Renamed `from_datetime` to `start` and `to_datetime` to `end`.
- Removed `RiskEngineConfig.deny_modify_pending_update`.
- Invalidated all pickled data due to Cython 3.0.0b1 upgrade.
New Features
- Added `DataEngine.register_catalog` to support historical data requests.
- `PortfolioAnalyzer` PnL statistics now take optional `unrealized_pnl`.
- Backtest performance statistics now include unrealized PnL.
Full Release Notes
# NautilusTrader 1.170.0 Beta Released on 11th March 2023 (UTC). ### Breaking Changes - Moved `backtest.data.providers` to `test_kit.providers` - Moved `backtest.data.wranglers` to `persistence.wranglers` (to be consolidated) - Moved `backtest.data.loaders` to `persistence.loaders` (to be consolidated) - Renamed `from_datetime` to `start` across data request methods and properties - Renamed `to_datetime` to `end` across data request methods and properties - Removed `RiskEngineConfig.deny_modify_pending_update` (as now redundant with new pending event sequencing) - Removed redundant log sink machinery - Changed parquet catalog schema dictionary integer key widths/types - Invalidated all pickled data due to Cython 3.0.0b1 upgrade ### Enhancements - Added logging to file at core Rust level - Added `DataCatalogConfig` for more cohesive data catalog configuration - Added `DataEngine.register_catalog` to support historical data requests - Added `catalog_config` field to base `NautilusKernelConfig` - Changed to immediately caching orders and order lists in `Strategy` - Changed to checking duplicate `client_order_id` and `order_list_id` in `Strategy` - Changed generating and applying `OrderPendingUpdate` and `OrderPendingCancel` in `Strategy` - `PortfolioAnalyzer` PnL statistics now take optional `unrealized_pnl` - Backtest performance statistics now include unrealized PnL in total PnL ### Fixes - Fixed Binance Futures trigger type parsing - Fixed `DataEngine` bar subscribe and unsubscribe logic, thanks for reporting @rsmb7z - Fixed `Actor` handling of bars, thanks @limx0 - Fixed `CancelAllOrders` command handling for contingent orders not yet in matching core - Fixed `TrailingStopMarketOrder` slippage calculation when no `trigger_price`, thanks for reporting @rsmb7z - Fixed `BinanceSpotInstrumentProvider` parsing of quote asset (was using base), thanks for reporting @logogin - Fixed undocumented Binance time in force 'GTE\_GTC', thanks for reporting @graceyangfan - Fixed `Position` calculation of `last_qty` when commission currency was equal to base currency, thanks for reporting @rsmb7z - Fixed `BacktestEngine` post backtest run PnL performance statistics for currencies traded per venue, thanks for reporting @rsmb7z