Skip to content

NautilusTrader 1.206.0 Beta

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 17 Nov 08:56

NautilusTrader 1.206.0 Beta

Released on 17th November 2024 (UTC).

Enhancements

  • Added TardisDataClient providing live data streams from a Tardis Machine WebSocket server
  • Added TardisInstrumentProvider providing instrument definitions from Tardis through the HTTP instrument metadata API
  • Added Portfolio.realized_pnl(...) method for per instrument realized PnL (based on positions)
  • Added Portfolio.realized_pnls(...) method for per venue realized PnL (based on positions)
  • Added configuration warning for InstrumentProvider (to warn when node starts with no instrument loading)
  • Implemented Tardis optional symbol normalization
  • Implemented WebSocketClient reconnection retries (#2044), thanks @davidsblom
  • Implemented OrderCancelRejected event generation for Binance and Bybit
  • Implemented OrderModifyRejected event generation for Binance and Bybit
  • Improved OrderRejected handling of reason string (None is now allowed which will become the string 'None')
  • Improved OrderCancelRejected handling of reason string (None is now allowed which will become the string 'None')
  • Improved OrderModifyRejected handling of reason string (None is now allowed which will become the string 'None')

Internal Improvements

  • Ported RiskEngine to Rust (#2035), thanks @Pushkarm029 and @twitu
  • Ported ExecutionEngine to Rust (#2048), thanks @twitu
  • Added globally shared data channels to send events from engines to Runner in Rust (#2042), thanks @twitu
  • Added LRU caching for dYdX HTTP client (#2049), thanks @davidsblom
  • Improved identifier constructors to take AsRef<str> for a cleaner more flexible API
  • Refined identifiers From trait impls
  • Refined InstrumentProvider initialization behavior and logging
  • Refined LiveTimer cancel and performance testing
  • Simplified LiveTimer cancellation model (#2046), thanks @twitu
  • Refined Bybit HMAC authentication signatures (now using Rust implemented function)
  • Refined Tardis instrument ID parsing
  • Removed Bybit msgspec redundant import alias (#2050), thanks @sunlei
  • Upgraded databento crate to v0.16.0

Breaking Changes

None

Fixes

  • Fixed loading specific instrument IDs for InstrumentProviderConfig
  • Fixed PyO3 instrument conversions for raw_symbol (was incorrectly using the normalized symbol)
  • Fixed reconcile open orders and account websocket message for dYdX (#2039), thanks @davidsblom
  • Fixed market order avg_px for Polymarket trade reports
  • Fixed Betfair clients keepalive (#2040), thanks @limx0
  • Fixed Betfair reconciliation (#2041), thanks @limx0
  • Fixed Betfair customer order ref limit to 32 chars
  • Fixed Bybit handling of PARTIALLY_FILLED_CANCELED status orders
  • Fixed Polymarket size precision for BinaryOption instruments (precision 6 to match USDC.e)
  • Fixed adapter instrument reloading (providers were not reloading instruments at the configured interval due to internal state flags)
  • Fixed static time logging for BacktestEngine when running with use_pyo3 logging config
  • Fixed in-flight orders check and improve error handling (#2053), thanks @davidsblom
  • Fixed dYdX handling for liquidated fills (#2052), thanks @davidsblom
  • Fixed BybitResponse.time field as optional int (#2051), thanks @sunlei
  • Fixed single instrument requests for DatabentoDataClient (was incorrectly calling _handle_instruments instead of _handle_instrument), thanks for reporting @Emsu
  • Fixed fsspec recursive globbing behavior to ensure only file paths are included, and bumped dependency to version 2024.10.0
  • Fixed jupyterlab url typo (#2057), thanks @Alsheh