NautilusTrader 1.182.0 Beta
Released on 23rd December 2023 (UTC).
Enhancements
- Added
CacheDatabaseFacadeandCacheDatabaseAdapterto abstract backing technology from Python codebase - Added
RedisCacheDatabaseimplemented in Rust with separate MPSC channel thread for insert, update and delete operations - Added TA-Lib integration, thanks @rsmb7z
- Added
OrderBookDeltaandOrderBookDeltasto serializable and publishable types - Moved
PortfolioFacadetoActor - Improved
ActorandStrategyusability to be more lenient to mistaken calls toclockandloggerfrom the constructor (warnings also added to docs) - Removed
redisandhiredisdependencies from Python codebase
Breaking Changes
- Changed configuration objects to take stronger types as these are now serializable when registered (rather than primitives)
- Changed
NautilusKernelConfig.trader_idto typeTraderId - Changed
BacktestDataConfig.instrument_idto typeInstrumentId - Changed
ActorConfig.component_idto typeComponentId | None - Changed
StrategyConfig.strategy_idto typeStrategyId | None - Changed
Instrument,OrderFilledandAccountStateinfofield serialization due below fix (you'll need to flush your cache) - Changed
CacheConfigto take aDatabaseConfig(better symmetry withMessageBusConfig) - Changed
RedisCacheDatabasedata structure for currencies from hashset to simpler key-value (you'll need to clear cache or delete all curreny keys) - Changed
Actorstate loading to now use the standardSerializer - Renamed
register_json_encodingtoregister_config_encoding - Renamed
register_json_decodingtoregister_config_decoding - Removed
CacheDatabaseConfig(due above config change) - Removed
infrastructuresubpackage (now redundant with new Rust implementation)
Fixes
- Fixed
jsonencoding forCacheDatabaseAdapterfrominfofield serialization fix below - Fixed
Instrument,OrderFilledandAccountStateinfofield serialization to retain JSON serializable dicts (rather than double encoding and losing information) - Fixed Binance Futures
good_till_datevalue whentime_in_forcenot GTD, such as when strategy is managing the GTD (was incorrectly passing through UNIX milliseconds) - Fixed
Executorhandling of queued task IDs (was not discarding from queued tasks on completion) - Fixed
DataEnginehandling of order book snapshots with very small intervals (now handles as short as 20 milliseconds) - Fixed
BacktestEngine.clear_actors(),BacktestEngine.clear_strategies()andBacktestEngine.clear_exec_algorithms(), thanks for reporting @davidsblom - Fixed
BacktestEngineOrderEmulator reset, thanks @davidsblom - Fixed
Throttler.resetand reset ofRiskEnginethrottlers, thanks @davidsblom