Skip to content

Releases: nautechsystems/nautilus_trader

NautilusTrader 1.170.0 Beta

12 Mar 01:43
afdf8d9
Compare
Choose a tag to compare

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

NautilusTrader 1.169.0 Beta

18 Feb 02:05
12801be
Compare
Choose a tag to compare

NautilusTrader 1.169.0 Beta

Released on 18th February 2023 (UTC).

Breaking Changes

  • NautilusConfig objects now pseudo-immutable from new msgspec 0.13.0
  • Renamed OrderFactory.bracket param post_only_entry -> entry_post_only (consistency with other params)
  • Renamed OrderFactory.bracket param post_only_tp -> tp_post_only (consistency with other params)
  • Renamed build_time_bars_with_no_updates -> time_bars_build_with_no_updates (consistency with new param)
  • Renamed OrderFactory.set_order_count() -> set_client_order_id_count() (clarity)
  • Renamed TradingNode.start() to TradingNode.run()

Enhancements

  • Complete overhaul and improvements to Binance adapter(s), thanks @poshcoe
  • Added Binance aggregated trades functionality with use_agg_trade_ticks, thanks @poshcoe
  • Added time_bars_timestamp_on_close option for configurable bar timestamping (True by default)
  • Added OrderFactory.generate_client_order_id() (calls internal generator)
  • Added OrderFactory.generate_order_list_id() (calls internal generator)
  • Added OrderFactory.create_list(...) as easier method for creating order lists
  • Added __len__ implementation for OrderList (returns length of orders)
  • Implemented optimized logger using Rust MPSC channel and separate thread
  • Expose and improve MatchingEngine public API for custom functionality
  • Exposed TradingNode.run_async() for easier running from async context
  • Exposed TradingNode.stop_async() for easier stopping from async context

Fixes

  • Fixed registration of SimulationModule (and refine Actor base registration)
  • Fixed loading of previously emulated and transformed orders (handles transforming OrderInitialized event)
  • Fixed handling of MARKET_TO_LIMIT orders in matching and risk engines, thanks for reporting @martinsaip

NautilusTrader 1.168.0 Beta

29 Jan 13:13
5ce9605
Compare
Choose a tag to compare

NautilusTrader 1.168.0 Beta

Released on 29th January 2023 (UTC).

Breaking Changes

  • Removed Cache.clear_cache() (redundant with the .reset() method)

Enhancements

  • Added Cache .add(...) and .get(...) for general 'user/custom' objects (as bytes)
  • Added CacheDatabase .add(...) and .load() for general cache objects (as bytes)
  • Added RedisCacheDatabase .add(...) and .load() for general Redis persisted bytes objects (as bytes)
  • Added Cache.actor_ids()
  • Added Actor cached state saving and loading functionality
  • Improved logging for called action handlers when not overridden

Fixes

  • Fixed configuration of loading and saving actor and strategy state

NautilusTrader 1.167.0 Beta

28 Jan 04:37
f95e3c7
Compare
Choose a tag to compare

NautilusTrader 1.167.0 Beta

Released on 28th January 2023 (UTC).

Breaking Changes

  • Renamed OrderBookData.update_id to sequence
  • Renamed BookOrder.id to order_id

Enhancements

  • Introduced Rust pyo3 based ParquetReader and ParquetWriter, thanks @twitu
  • Added msgbus.is_subscribed (to check if topic and handler already subscribed)
  • Simplified message type model and introduce CQRS-ish live messaging architecture

Fixes

  • Fixed Binance data clients order book startup buffer handling
  • Fixed NautilusKernel redundant initialization of event loop for backtesting, thanks @limx0
  • Fixed BacktestNode disposal sequence
  • Fixed quick start docs and notebook

NautilusTrader 1.166.0 Beta

17 Jan 16:51
c58a678
Compare
Choose a tag to compare

NautilusTrader 1.166.0 Beta

Released on 17th January 2023 (UTC).

Breaking Changes

  • Position.unrealized_pnl now None until any realized PnL is generated (to reduce ambiguity)

Enhancements

  • Added instrument status update subscription handlers, thanks @limx0
  • Improvements to InteractiveBrokers DataClient, thanks @rsmb7z
  • Improvements to async task handling for live clients
  • Various improvements to Betfair adapter, thanks @limx0

Fixes

  • Fixed netted Position realized_pnl and realized_return fields, which were incorrectly cumulative
  • Fixed netted Position flip logic (now correctly 'resets' position)
  • Various fixes for Betfair adapter, thanks @limx0
  • InteractiveBrokers integration docs fixes

NautilusTrader 1.165.0 Beta

14 Jan 05:50
d54c97a
Compare
Choose a tag to compare

NautilusTrader 1.165.0 Beta

Released on 14th January 2023 (UTC).

A number of enum variant names have been changed in favour of explicitness,
and also to avoid C naming collisions.

Breaking Changes

  • Renamed AggressorSide.NONE to NO_AGGRESSOR
  • Renamed AggressorSide.BUY to BUYER
  • Renamed AggressorSide.SELL to SELLER
  • Renamed AssetClass.CRYPTO to CRYPTOCURRENCY
  • Renamed LiquiditySide.NONE to NO_LIQUIDITY_SIDE
  • Renamed OMSType to OmsType
  • Renamed OmsType.NONE to UNSPECIFIED
  • Renamed OrderSide.NONE to NO_ORDER_SIDE
  • Renamed PositionSide.NONE to NO_POSITION_SIDE
  • Renamed TrailingOffsetType.NONE to NO_TRAILING_OFFSET
  • Removed TrailingOffsetType.DEFAULT
  • Renamed TriggerType.NONE to NO_TRIGGER
  • Renamed TriggerType.LAST to LAST_TRADE
  • Renamed TriggerType.MARK to MARK_PRICE
  • Renamed TriggerType.INDEX to INDEX_PRICE
  • Renamed ComponentState.INITIALIZED to READY
  • Renamed OrderFactory.bracket(post_only) to post_only_entry
  • Moved manage_gtd_expiry to Strategy.submit_order(...) and Strategy.submit_order_list(...)

Enhancements

  • Added BarSpecification.timedelta property, thanks @rsmb7z
  • Added DataEngineConfig.build_time_bars_with_no_updates option
  • Added OrderFactory.bracket(post_only_tp) param
  • Added OrderListIdGenerator and integrate with OrderFactory
  • Added Cache.add_order_list(...)
  • Added Cache.order_list(...)
  • Added Cache.order_lists(...)
  • Added Cache.order_list_exists(...)
  • Added Cache.order_list_ids(...)
  • Improved generation of OrderListId from factory to ensure uniqueness
  • Added auction matches for backtests, thanks @limx0
  • Added .timedelta property to BarSpecification, thanks @rsmb7z
  • Numerous improvements to the Betfair adapter, thanks @limx0
  • Improvements to Interactive Brokers data subscriptions, thanks @rsmb7z
  • Added DataEngineConfig.validate_data_sequence (False by default and currently only for Bar data), thanks @rsmb7z

Fixes

  • Added TRD_GRP_* enum variants for Binance spot permissions
  • Fixed PARTIALLY_FILLED -> EXPIRED order state transition, thanks @bb01100100

NautilusTrader 1.164.0 Beta

23 Dec 23:25
46611e7
Compare
Choose a tag to compare

NautilusTrader 1.164.0 Beta

Released on 23rd December 2022 (UTC).

Breaking Changes

None

Enhancements

  • Added managed GTD order expiry (experimental feature, config may change)
  • Added Rust ParquetReader and ParquetWriter (for QuoteTick and TradeTick only)

Fixes

  • Fixed MARKET_IF_TOUCHED orders for OrderFactory.bracket(..)
  • Fixed OrderEmulator trigger event handling for live trading
  • Fixed OrderEmulator transformation to market orders which had a GTD time in force
  • Fixed serialization of OrderUpdated events
  • Fixed typing and edge cases for new msgspec, thanks @limx0
  • Fixed data wrangler processing with missing data, thanks @rsmb7z

NautilusTrader 1.163.0 Beta

17 Dec 11:47
7ef9941
Compare
Choose a tag to compare

NautilusTrader 1.163.0 Beta

Released on 17th December 2022 (UTC).

Breaking Changes

None

Enhancements

None

Fixes

  • Fixed MARKET_IF_TOUCHED and LIMIT_IF_TOUCHED trigger and modify behavior
  • Fixed MatchingEngine updates of stop order types
  • Fixed combinations of passive or immediate trigger vs passive or immediate fill behavior
  • Fixed memory leaks from passing string pointers from Rust, thanks @twitu

NautilusTrader 1.162.0 Beta

11 Dec 22:19
981d8e2
Compare
Choose a tag to compare

NautilusTrader 1.162.0 Beta

Released on 12th December 2022 (UTC).

Breaking Changes

  • OrderFactory bracket order methods consolidated to .bracket(...)

Enhancements

  • Extended OrderFactory to provide more bracket order types
  • Simplified GitHub CI and removed nox dependency

Fixes

  • Fixed OrderBook sorting for bid side, thanks @gaugau3000
  • Fixed MARKET_TO_LIMIT order initial fill behaviour
  • Fixed BollingerBands indicator mid-band calculations, thanks zhp (Discord)

NautilusTrader 1.161.0 Beta

09 Dec 12:52
ad0f3f0
Compare
Choose a tag to compare

NautilusTrader 1.161.0 Beta

Released on 10th December 2022 (UTC).

Breaking Changes

  • Renamed OrderFactory.bracket_market to OrderFactory.bracket_market_entry
  • Renamed OrderFactory.bracket_limit to OrderFactory.bracket_limit_entry
  • Renamed OrderFactory bracket order price and trigger_price parameters

Enhancements

  • Added support for Python 3.11
  • Consolidated config objects to msgspec providing better performance and correctness
  • Added OrderFactory.bracket_stop_limit_entry_stop_limit_tp(...)
  • Numerous improvements to the Interactive Brokers adapter, thanks @limx0 and @rsmb7z
  • Removed dependency on pydantic

Fixes

  • Fixed STOP_MARKET order behavior to fill at market on immediate trigger
  • Fixed STOP_LIMIT order behavior to fill at market on immediate trigger and marketable
  • Fixed STOP_LIMIT order behavior to fill at market on processed trigger and marketable
  • Fixed LIMIT_IF_TOUCHED order behavior to fill at market on immediate trigger and marketable
  • Fixed Binance start and stop time units for bar (kline) requests, thanks @Tzumx
  • RiskEngineConfig.bypass set to True will now correctly bypass throttlers, thanks @DownBadCapital
  • Fixed updating of emulated orders
  • Numerous fixes to the Interactive Brokers adapter, thanks @limx0 and @rsmb7z