Releases: nautechsystems/nautilus_trader
NautilusTrader 1.119.0 Beta
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
andQuantity
. - Renamed
BypassExecutionDatabase
toInMemoryExecutionDatabase
.
Enhancements
- Rewired
RiskEngine
andExecutionEngine
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
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 generatesOrderAccepted
forMarketOrder
.- 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 correspondingis_buy_c()
fast method). - Added
OrderFilled.is_sell
property (with correspondingis_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
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 takesInstrument
andOrderBookLevel
.
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
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
forOrderBookLevel.L3
now returns correct book.- Betfair handling of execution IDs.
NautilusTrader 1.116.0 Beta
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
toOrderBookDelta
. - Rename
OrderBookOperations
toOrderBookDeltas
. - Rename
OrderBookOperationType
toOrderBookDeltaType
.
Enhancements
None
Fixes
None
NautilusTrader 1.115.0 Beta
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
toVenueOrderId
. - Rename
Order.id
toOrder.venue_order_id
. - Rename
Order.cl_ord_id
toOrder.client_order_id
. - Rename
AssetClass.STOCK
toAssetClass.EQUITY
. - Remove redundant flag
generate_position_ids
(handled byOMSType
).
Enhancements
- Introduce integration for Betfair.
- Add
AssetClass.METAL
andAssetClass.ENERGY
. - Add
VenueStatusEvent
,InstrumentStatusEvent
andInstrumentClosePrice
. - Usage of
np.ndarray
to improve function and indicator performance.
Fixes
LiveLogger
log message when blocking.
NautilusTrader 1.114.0 Beta
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
toUpdateOrder
. - Rename
OrderAmended
toOrderUpdated
. - Rename
amend
andamended
related methods toupdate
andupdated
. - Rename
OrderCancelReject
toOrderCancelRejected
(standardize tense).
Enhancements
- Improve efficiency of data wrangling.
- Simplify
Logger
and general system logging. - Add
stdout
andstderr
log streams with configuration. - Add
OrderBookData
base class.
Fixes
- Backtest handling of
GenericData
andOrderBook
related data. - Backtest
DataClient
creation logic prevented client registering.
NautilusTrader 1.113.0 Beta
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
toUpdateOrder
. - Rename
OrderAmended
toOrderUpdated
. - Rename
amend
andamended
related methods toupdate
andupdated
. - Rename
OrderCancelReject
toOrderCancelRejected
(standardize tense).
Enhancements
- Introduce
OrderUpdateRejected
, event separated for clarity. - Refined
LiveLogger
, now runs on event loop with high-performanceQueue
. - 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
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
intoBar
as a property. - Change signature of
Bar
handling methods due to above. - Remove
Instrument.leverage
(incorrect place for concept). - Change
ExecutionClient.venue
as aVenue
toExecutionClient.name
as astr
. - Change serialization of timestamp datatype to
int64
. - Extensive changes to serialization constant names.
- Rename
OrderFilled.filled_qty
toOrderFilled.last_qty
. - Rename
OrderFilled.filled_price
toOrderFilled.last_px
. - Rename
avg_price
toavg_px
in methods and properties. - Rename
avg_open
toavg_px_open
in methods and properties. - Rename
avg_close
toavg_px_close
in methods and properties. - Rename
Position.relative_quantity
toPosition.relative_qty
. - Rename
Position.peak_quantity
toPosition.peak_qty
.
Enhancements
- Standardize nanosecond timestamps.
- Add time unit conversion functions as found in
nautilus_trader.core.datetime
. - Add optional
broker
property toVenue
to assist with routing. - Enhance state reconciliation from both
LiveExecutionEngine
andLiveExecutionClient
. - Add internal messages to aid state reconciliation.
Fixes
DataCache
incorrectly caching bars.
NautilusTrader 1.111.0 Beta
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
toinstrument_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 atmaxlen
was not
creating a task on the event loop.