Skip to content

Releases: nautechsystems/nautilus_trader

NautilusTrader 1.133.0 Beta

08 Nov 11:50
f9e8bd8
Compare
Choose a tag to compare

NautilusTrader 1.133.0 Beta - Release Notes

Released on 8th, November 2021

Breaking Changes

None

Enhancements

  • Added LatencyModel for simulated exchange.
  • Added last_update_id to order books.
  • Added update_id to order book data.
  • Added depth param when subscribing to order book deltas.
  • Added Clock.timestamp_ms().
  • Added TestDataProvider and consolidate test data.
  • Added orjson default serializer for arrow.
  • Reorganized example strategies and launch scripts.

Fixes

  • Fixed logic for partial fills in backtests.
  • Various Betfair integration fixes.
  • Various BacktestNode fixes.

NautilusTrader 1.132.0 Beta

24 Oct 10:28
fc5f8cd
Compare
Choose a tag to compare

NautilusTrader 1.132.0 Beta - Release Notes

Released on 24th, October 2021

Breaking Changes

  • Actor constructor now takes ActorConfig.

Enhancements

  • Added ActorConfig.
  • Added ImportableActorConfig.
  • Added ActorFactory.
  • Added actors to BacktestRunConfig.
  • Improved network base classes.
  • Refine InstrumentProvider.

Fixes

  • Fixed persistence config for BacktestNode.
  • Various Betfair integration fixes.

NautilusTrader 1.131.0 Beta

10 Oct 11:31
5bdfb0f
Compare
Choose a tag to compare

NautilusTrader 1.131.0 Beta - Release Notes

Released on 10th, October 2021

Breaking Changes

  • Renamed nanos_to_unix_dt to unix_nanos_to_dt (more accurate name).
  • Changed Clock.set_time_alert(...) method signature.
  • Changed Clock.set_timer(...) method signature.
  • Removed pd.Timestamp from TimeEvent.

Enhancements

  • OrderList submission and OTO, OCO contingencies now operational.
  • Added Cache.orders_for_position(...) method.
  • Added Cache.position_for_order(...) method.
  • Added SimulatedExchange.get_working_bid_orders(...) method.
  • Added SimulatedExchange.get_working_ask_orders(...) method.
  • Added optional run_config_id for backtest runs.
  • Added BacktestResult object.
  • Added Clock.set_time_alert_ns(...) method.
  • Added Clock.set_timer_ns(...) method.
  • Added fill_limit_at_price simulated exchange option.
  • Added fill_stop_at_price simulated exchange option.
  • Improve timer and time event efficiency.

Fixes

  • Fixed OrderUpdated leaves quantity calculation.
  • Fixed contingency order logic at the exchange.
  • Fixed indexing of orders for a position in the cache.
  • Fixed flip logic for zero sized positions (not a flip).

NautilusTrader 1.130.0 Beta

26 Sep 22:37
504c447
Compare
Choose a tag to compare

NautilusTrader 1.130.0 Beta - Release Notes

Released on 26th, September 2021

Breaking Changes

  • BacktestEngine.run method signature change.
  • Renamed BookLevel to BookType.
  • Renamed FillModel params.

Enhancements

  • Added streaming backtest machinery.
  • Added quantstats (removed empyrical).
  • Added BacktestEngine.run_streaming().
  • Added BacktestEngine.end_streaming()
  • Added Portfolio.balances_locked(venue).
  • Improved DataCatalog functionality.
  • Improved logging for BacktestEngine.
  • Improved parquet serialization and machinery.

Fixes

  • Fixed SimulatedExchange message processing.
  • Fixed BacktestEngine event ordering in main loop.
  • Fixed locked balance calculation for CASH accounts.
  • Fixed fill dynamics for reduce-only orders.
  • Fixed PositionId handling for HEDGING OMS exchanges.
  • Fixed parquet Instrument serialization.
  • Fixed CASH account PnL calculations with base currency.

NautilusTrader 1.129.0 Beta

12 Sep 14:32
723a98f
Compare
Choose a tag to compare

NautilusTrader 1.129.0 Beta - Release Notes

Released on 12th, September 2021

Breaking Changes

  • Removed CCXT adapter (#428).
  • Backtest configuration changes.
  • Renamed UpdateOrder to ModifyOrder (terminology standardization).
  • Renamed DeltaType to BookAction (terminology standardization).

Enhancements

  • Added BacktestNode.
  • Added BookIntegrityError with improved integrity checks for order books.
  • Added order custom user tags.
  • Added Actor.register_warning_event (also applicable to TradingStrategy).
  • Added Actor.deregister_warning_event (also applicable to TradingStrategy).
  • Added ContingencyType enum (for contingency orders in an OrderList).
  • All order types can now be reduce_only (#437).
  • Refined backtest configuration options.
  • Improved efficiency of UUID4 using the fastuuid Rust bindings.

Fixes

  • Fixed Redis loss of precision for int64_t nanosecond timestamps (#363).
  • Fixed behavior of reduce_only orders for both submission and filling (#437).
  • Fixed PnL calculation for CASH accounts when commission negative (#436).

NautilusTrader 1.128.0 Beta

30 Aug 10:00
44068bc
Compare
Choose a tag to compare

NautilusTrader 1.128.0 Beta - Release Notes

This release continues the focus on the core system, with upgrades and cleanups
to the component base class. The concept of an active order has been introduced,
which is an order whose state can change (is not a completed order).

Breaking Changes

  • All configuration due pydantic upgrade.
  • Throttling config now takes string e.g. "100/00:00:01" which is 100 / second.
  • Renamed DataProducerFacade to DataProducer.
  • Renamed fill.side to fill.order_side (clarity and standardization).
  • Renamed fill.type to fill.order_type (clarity and standardization).

Enhancements

  • Added serializable configuration classes leveraging pydantic.
  • Improved adding bar data to BacktestEngine.
  • Added BacktestEngine.add_bar_objects().
  • Added BacktestEngine.add_bars_as_ticks().
  • Added order active concept, with order.is_active and cache methods.
  • Added ComponentStateChanged event.
  • Added Component.degrade() and Component.fault() command methods.
  • Added Component.on_degrade() and Component.on_fault() handler methods.
  • Added ComponentState.PRE_INITIALIZED.
  • Added ComponentState.DEGRADING.
  • Added ComponentState.DEGRADED.
  • Added ComponentState.FAULTING.
  • Added ComponentState.FAULTED.
  • Added ComponentTrigger.INITIALIZE.
  • Added ComponentTrigger.DEGRADE.
  • Added ComponentTrigger.DEGRADED.
  • Added ComponentTrigger.FAULT.
  • Added ComponentTrigger.FAULTED.
  • Wired up Ticker data type.

Fixes

  • DataEngine.subscribed_bars() now reports internally aggregated bars also.

NautilusTrader 1.127.0 Beta

17 Aug 12:21
2793380
Compare
Choose a tag to compare

NautilusTrader 1.127.0 Beta - Release Notes

This release has again focused on core areas of the platform, including a
significant overhaul of accounting and portfolio components. The wiring between
the DataEngine and DataClient(s) has also received attention, and should now
exhibit correct subscription mechanics.

The Betfair adapter has been completely re-written, providing various fixes and
enhancements, increased performance, and full async support.

There has also been some further renaming to continue to align the platform
as closely as possible with established terminology in the domain.

Breaking Changes

  • Moved margin calculation methods from Instrument to Account.
  • Removed redundant Portfolio.register_account.
  • Renamed OrderState to OrderStatus.
  • Renamed Order.state to Order.status.
  • Renamed msgbus.message_bus to msgbus.bus.

Enhancements

  • Betfair adapter re-write.
  • Extracted accounting subpackage.
  • Extracted portfolio subpackage.
  • Subclassed Account with CashAccount and MarginAccount.
  • Added AccountsManager.
  • Added AccountFactory.
  • Moved registration of custom account classes to AccountFactory.
  • Moved registration of calculated account to AccountFactory.
  • Added registration of OMS type per trading strategy.
  • Added ExecutionClient.create_account for custom account classes.
  • Separate PortfolioFacade from Portfolio.

Fixes

  • Data subscription handling in DataEngine.
  • Cash accounts no longer generate spurious margins.
  • Fix TimeBarAggregator._stored_close_ns property name.

NautilusTrader 1.126.1 Beta

02 Aug 21:56
a569c76
Compare
Choose a tag to compare

NautilusTrader 1.126.1 Beta - Release Notes

This is a patch release which fixes a bug involving NotImplementedError
exception handling when subscribing to order book deltas - when not supported by
a client. This bug affected CCXT order book subscriptions.

Breaking Changes

None

Enhancements

None

Fixes

  • Fix DataEngine order book subscription handling.

NautilusTrader 1.126.0 Beta

02 Aug 13:17
a64a8bd
Compare
Choose a tag to compare

NautilusTrader 1.126.0 Beta - Release Notes

This release sees the completion of the initial implementation of the
MessageBus, with data now being handled by PUB/SUB patterns, along with the
additions of point-to-point and REQ/REP messaging functionality.

An Actor base class has been abstracted from TradingStrategy which allows
custom components to be added to a Trader which aren't necessarily trading
strategies, opening up further possibilities for extending NautilusTrader with
custom functionality.

For the sake of simplicity and to favour more idiomatic Python, the null object
pattern is no longer utilized for handling identifiers. This has removed a layer
of 'logical indirection' in certain parts of the codebase, and allows for simpler
code.

An order is now considered 'in-flight' if it is actively pending a state
transition i.e. in the SUBMITTED,PENDING_UPDATE or PENDING_CANCEL states.

It is now a well established convention that all integer based timestamps are
expressed in UNIX nanoseconds, therefore the _ns postfix has now been dropped.
For clarity - time periods/intervals/objects where the units may not be obvious
have retained the _ns postfix.

The opportunity was identified to unify the parameter naming for the concept
of object instantiation by renaming timestamp_ns and ts_recv_ns to ts_init.
Along the same lines, the timestamps for both event and data occurrence have
been standardized to ts_event.

It is acknowledged that the frequent name changes and modifications to core
concepts may be frustrating, however whilst still in a beta phase - we're taking
the opportunity to lay a solid foundation for this project to continue to growth
in the years ahead.

Breaking Changes

  • Renamed timestamp_ns to ts_init.
  • Renamed ts_recv_ns to ts_event.
  • Renamed various event timestamp parameters to ts_event.
  • Removed null object methods on identifiers.

Enhancements

  • Added Actor component base class.
  • Added MessageBus.register().
  • Added MessageBus.send().
  • Added MessageBus.request().
  • Added MessageBus.response().
  • Added Trader.add_component().
  • Added Trader.add_components().
  • Added Trader.add_log_sink().

Fixes

  • Various Betfair adapter patches and fixes.
  • ExecutionEngine position flip logic in certain edge cases.

NautilusTrader 1.125.0 Beta

18 Jul 13:36
11c83f4
Compare
Choose a tag to compare

NautilusTrader 1.125.0 Beta - Release Notes

This release introduces a major re-architecture of the internal messaging system.
A common message bus has been implemented which now handles all events via a
PUB/SUB messaging pattern. The next release will see all data being handled by
the message bus, please see the related issue for further details on this enhancement.

Another notable feature is the introduction of the order 'in-flight' concept,
which is a submitted order which has not yet been acknowledged by the
exchange/broker. Several properties on Order, and methods on Cache, now exist
to support this.

The Throttler has been refactored and optimized further. There has also been
extensive reorganization of the model sub-package, standardization of identifiers
on events, along with numerous 'under the hood' cleanups and two bug fixes.

Breaking Changes

  • Renamed MessageType enum to MessageCategory.
  • Renamed fill.order_side to fill.side.
  • Renamed fill.order_type to fill.type.
  • All Event serialization due to domain refactorings.

Enhancements

  • Added MessageBus class.
  • Added TraderId to Order and Position.
  • Added OrderType to OrderFilled.
  • Added unrealized PnL to position events.
  • Added order inflight concept to Order and Cache.
  • Improved efficiency of Throttler.
  • Standardized events str and repr.
  • Standardized commands str and repr.
  • Standardized identifiers on events and objects.
  • Improved Account str and repr.
  • Using orjson over json for efficiency.
  • Removed redundant BypassCacheDatabase.
  • Introduced mypy to the codebase.

Fixes

  • Fixed backtest log timestamping.
  • Fixed backtest duplicate initial account event.