NautilusTrader 1.191.0 Beta
Released on 20th April 2024 (UTC).
Enhancements
- Implemented
FeeModelincludingFixedFeeModelandMakerTakerFeeModel(#1584), thanks @rsmb7z - Implemented
TradeTickDataWrangler.process_bar_data(#1585), thanks @rsmb7z - Implemented multiple timeframe bar execution (will use lowest timeframe per instrument)
- Optimized
LiveTimerefficiency and accuracy withtokiotimer under the hood - Optimized
QuoteTickDataWranglerandTradeTickDataWrangler(#1590), thanks @rsmb7z - Standardized adapter client logging (handle more logging from client base classes)
- Simplified and consolidated Rust
OrderBookdesign - Improved
CacheDatabaseAdaptergraceful close and thread join - Improved
MessageBusgraceful close and thread join - Improved
modify_ordererror logging when order values remain unchanged - Added
RecordFlagenum for Rust and Python - Interactive Brokers further improvements and fixes, thanks @rsmb7z
- Ported Bias indicator to Rust, thanks @pushkarm029
Breaking Changes
- Reordered
OrderBookDeltaparamsflagsandsequenceand removed default 0 values (more explicit and less chance of mismatches) - Reordered
OrderBookparamsflagsandsequenceand removed default 0 values (more explicit and less chance of mismatches) - Added
flagsparameter toOrderBook.add - Added
flagsparameter toOrderBook.update - Added
flagsparameter toOrderBook.delete - Changed Arrow schema for all instruments: added
infobinary field - Changed Arrow schema for
CryptoFuture: addedis_inverseboolean field - Renamed both
OrderBookMboandOrderBookMbptoOrderBook(consolidated) - Renamed
Indicator.handle_book_mboandIndicator.handle_book_mbptohandle_book(consolidated) - Renamed
register_serializable_objecttoregister_serializable_type(also renames first param fromobjtocls)
Fixes
- Fixed
MessageBuspattern resolving (fixes a performance regression where topics published with no subscribers would always re-resolve) - Fixed
BacktestNodestreaming data management (was not clearing between chunks), thanks for the report @dpmabo - Fixed
RiskEnginecumulative notional calculations for margin accounts (was incorrectly using base currency when selling) - Fixed selling
Equityinstruments withCASHaccount andNETTINGOMS incorrectly rejecting (should be able to reduce position) - Fixed Databento bars decoding (was incorrectly applying display factor)
- Fixed
Binancebar (kline) to useclose_timeforts_eventwasopentime(#1591), thanks for reporting @OnlyC - Fixed
AccountMarginExceedederror condition (margin must actually be exceeded now, and can be zero) - Fixed
ParquetDataCatalogpath globbing which was including all paths with substrings of specified instrument IDs