Skip to content

Releases: nautechsystems/nautilus_trader

NautilusTrader 1.119.0 Beta

17 May 12:31
d2ed11c
Compare
Choose a tag to compare

NautilusTrader 1.119.0 Beta - Release Notes

This release applies another major refactoring to the value object API for
BaseDecimal and its subclasses Price and Quantity. Previously a precision
was not explicitly required when passing in a decimal.Decimal type which
sometimes resulted in unexpected behavior when a user passed in a decimal with
a very large precision (when wrapping a float with decimal.Decimal).

Convenience methods have been added to Price and Quantity where precision
is implicitly zero for ints, or implied in the number of digits after the '.'
point for strings. Convenience methods have also been added to Instrument to
assist the UX.

The serialization of Money has been improved with the inclusion of the
currency code in the string delimited by whitespace. This avoids an additional
field for the currency code.

RiskEngine has been rewired ahead of ExecutionEngine which clarifies areas
of responsibility and cleans up the registration sequence and allows a more
natural flow of command and event messages.

Breaking Changes

  • Serializations involving Money.
  • Changed usage of Price and Quantity.
  • Renamed BypassExecutionDatabase to InMemoryExecutionDatabase.

Enhancements

  • Rewired RiskEngine and ExecutionEngine sequence.
  • Added Instrument database operations.
  • Added MsgPackInstrumentSerializer.
  • Added Price.from_str().
  • Added Price.from_int().
  • Added Quantity.zero().
  • Added Quantity.from_str().
  • Added Quantity.from_int().
  • Added Instrument.make_price().
  • Added Instrument.make_qty().
  • Improved serialization of Money.

Fixes

  • Handling of precision for decimal.Decimal values passed to value objects.

NautilusTrader 1.118.0 Beta

10 May 01:35
86094fb
Compare
Choose a tag to compare

NautilusTrader 1.118.0 Beta - Release Notes

This release simplifies the backtesting workflow by removing the need for the
intermediate BacktestDataContainer. There has also been some simplifications
for OrderFill events, as well as additional order states and events.

Breaking Changes

  • Standardized all 'cancelled' references to 'canceled'.
  • SimulatedExchange no longer generates OrderAccepted for MarketOrder.
  • Removed redundant BacktestDataContainer.
  • Removed redundant OrderFilled.cum_qty.
  • Removed redundant OrderFilled.leaves_qty.
  • BacktestEngine constructor simplified.
  • BacktestMarketDataClient no longer needs instruments.
  • Rename PerformanceAnalyzer.get_realized_pnls to .realized_pnls.

Enhancements

  • Re-engineered BacktestEngine to take data directly.
  • Added OrderState.PENDING_CANCEL.
  • Added OrderState.PENDING_REPLACE.
  • Added OrderPendingReplace event.
  • Added OrderPendingCancel event.
  • Added OrderFilled.is_buy property (with corresponding is_buy_c() fast method).
  • Added OrderFilled.is_sell property (with corresponding is_sell_c() fast method).
  • Added Position.is_opposite_side(OrderSide side) convenience method.
  • Modified the Order FSM and event handling for the above.
  • Consolidated event generation into ExecutionClient base class.
  • Refactored SimulatedExchange for greater clarity.

Fixes

  • ExecutionCache positions open queries.
  • Exchange accounting for exchange OMSType.NETTING.
  • Position flipping logic for exchange OMSType.NETTING.
  • Multi-currency account terminology.
  • Windows wheel packaging.
  • Windows path errors.

NautilusTrader 1.117.0 Beta

29 Apr 06:58
57eab32
Compare
Choose a tag to compare

NautilusTrader 1.117.0 Beta - Release Notes

The major thrust of this release is added support for order book data in
backtests. The SimulatedExchange now maintains order books of each instrument
and will accurately simulate market impact with L2/L3 data. For quote and trade
tick data a L1 order book is used as a proxy. A future release will include
improved fill modelling assumptions and customizations.

Breaking Changes

  • OrderBook.create now takes Instrument and OrderBookLevel.

Enhancements

  • SimulatedExchange now maintains order books internally.
  • LiveLogger now exhibits better blocking behavior and logging.

Fixes

  • Various patches to the Betfair adapter.
  • Documentation builds.

NautilusTrader 1.116.1 Beta

18 Apr 11:21
6d4c074
Compare
Choose a tag to compare

NautilusTrader 1.116.1 Beta - Release Notes

Announcing official Windows 64-bit support.

Several bugs have been identified and fixed.

Breaking Changes

None

Enhancements

  • Performance test refactoring.
  • Remove redundant performance harness.
  • Add Queue.peek() to high-performance queue.
  • GitHub action refactoring, CI for Windows.
  • Builds for 32-bit platforms.

Fixes

  • OrderBook.create for OrderBookLevel.L3 now returns correct book.
  • Betfair handling of execution IDs.

NautilusTrader 1.116.0 Beta

17 Apr 00:06
3f192e7
Compare
Choose a tag to compare

NautilusTrader 1.116.0 Beta - Release Notes

This release includes substantial breaking changes.

Further fundamental changes to the core API have been made.

Breaking Changes

  • Introduce ClientId for data and execution client identification.
  • Standardize client IDs to upper case.
  • Rename OrderBookOperation to OrderBookDelta.
  • Rename OrderBookOperations to OrderBookDeltas.
  • Rename OrderBookOperationType to OrderBookDeltaType.

Enhancements

None

Fixes

None

NautilusTrader 1.115.0 Beta

10 Apr 01:12
6c10b5f
Compare
Choose a tag to compare

NautilusTrader 1.115.0 Beta - Release Notes

This release includes substantial breaking changes.

Due to recent feedback and much further thought - a major renaming has been carried
out involving order identifiers. The Order is the only domain object in the
model which is identified with more than one ID. Due to this, more explicitness
helps to ensure correct logic. Previously the OrderId was
implicitly assumed to be the one assigned by the trading venue. This has been
clarified by renaming the identifier to VenueOrderId. Following this, it no
longer made sense to refer to it through Order.id, and so this was changed to
its full name Order.venue_order_id. This naturally resulted in ClientOrderId(s)
being renamed in properties and variables from cl_ord_id to client_order_id.

Breaking Changes

  • Rename OrderId to VenueOrderId.
  • Rename Order.id to Order.venue_order_id.
  • Rename Order.cl_ord_id to Order.client_order_id.
  • Rename AssetClass.STOCK to AssetClass.EQUITY.
  • Remove redundant flag generate_position_ids (handled by OMSType).

Enhancements

  • Introduce integration for Betfair.
  • Add AssetClass.METAL and AssetClass.ENERGY.
  • Add VenueStatusEvent, InstrumentStatusEvent and InstrumentClosePrice.
  • Usage of np.ndarray to improve function and indicator performance.

Fixes

  • LiveLogger log message when blocking.

NautilusTrader 1.114.0 Beta

05 Apr 11:43
5420954
Compare
Choose a tag to compare

NautilusTrader 1.114.0 Beta - Release Notes

This release includes substantial breaking changes.

Further standardization of naming conventions along with internal refinements
and fixes.

Breaking Changes

  • Rename AmendOrder to UpdateOrder.
  • Rename OrderAmended to OrderUpdated.
  • Rename amend and amended related methods to update and updated.
  • Rename OrderCancelReject to OrderCancelRejected (standardize tense).

Enhancements

  • Improve efficiency of data wrangling.
  • Simplify Logger and general system logging.
  • Add stdout and stderr log streams with configuration.
  • Add OrderBookData base class.

Fixes

  • Backtest handling of GenericData and OrderBook related data.
  • Backtest DataClient creation logic prevented client registering.

NautilusTrader 1.113.0 Beta

01 Apr 09:19
ba99d7d
Compare
Choose a tag to compare

NautilusTrader 1.113.0 Beta - Release Notes

This release includes substantial breaking changes.

Further standardization of naming conventions along with internal refinements
and fixes.

Breaking Changes

  • Rename AmendOrder to UpdateOrder.
  • Rename OrderAmended to OrderUpdated.
  • Rename amend and amended related methods to update and updated.
  • Rename OrderCancelReject to OrderCancelRejected (standardize tense).

Enhancements

  • Introduce OrderUpdateRejected, event separated for clarity.
  • Refined LiveLogger, now runs on event loop with high-performance Queue.
  • Improved flexibility of when strategies are added to a BacktestEngine.
  • Improved checks for OrderId equality when applying order events.

Fixes

  • Removed UNDEFINED enum values. Do not allow invalid values to be represented
    in the system (prefer throwing exceptions).

NautilusTrader 1.112.0 Beta

27 Mar 07:52
6b45b88
Compare
Choose a tag to compare

NautilusTrader 1.112.0 Beta - Release Notes

This release includes substantial breaking changes.

The platforms internal timestamping has been standardized to nanoseconds. This
decision was made to increase the accuracy of backtests to nanosecond precision,
improve data handling including order book and custom data for backtesting, and
to future-proof the platform to a more professional standard. The top level user
API still takes datetime and timedelta objects for usability.

There has also been some standardization of naming conventions to align more
closely with established financial market terminology with reference to the
FIX5.0 SP2 specification, and CME MDP 3.0.

Breaking Changes

  • Move BarType into Bar as a property.
  • Change signature of Bar handling methods due to above.
  • Remove Instrument.leverage (incorrect place for concept).
  • Change ExecutionClient.venue as a Venue to ExecutionClient.name as a str.
  • Change serialization of timestamp datatype to int64.
  • Extensive changes to serialization constant names.
  • Rename OrderFilled.filled_qty to OrderFilled.last_qty.
  • Rename OrderFilled.filled_price to OrderFilled.last_px.
  • Rename avg_price to avg_px in methods and properties.
  • Rename avg_open to avg_px_open in methods and properties.
  • Rename avg_close to avg_px_close in methods and properties.
  • Rename Position.relative_quantity to Position.relative_qty.
  • Rename Position.peak_quantity to Position.peak_qty.

Enhancements

  • Standardize nanosecond timestamps.
  • Add time unit conversion functions as found in nautilus_trader.core.datetime.
  • Add optional broker property to Venue to assist with routing.
  • Enhance state reconciliation from both LiveExecutionEngine and LiveExecutionClient.
  • Add internal messages to aid state reconciliation.

Fixes

  • DataCache incorrectly caching bars.

NautilusTrader 1.111.0 Beta

15 Mar 01:11
533c7ea
Compare
Choose a tag to compare

NautilusTrader 1.111.0 Beta - Release Notes

This release adds further enhancements to the platform.

Breaking Changes

None

Enhancements

  • RiskEngine built out including configuration options hook and
    LiveRiskEngine implementation.
  • Add generic Throttler.
  • Add details dict to instrument_id related requests to cover IB futures
    contracts.
  • Add missing Fiat currencies.
  • Add additional Crypto currencies.
  • Add ISO 4217 codes.
  • Add currency names.

Fixes

  • Queue put coroutines in live engines when blocking at maxlen was not
    creating a task on the event loop.