v1.207.0

nautechsystems/nautilus_traderv1.207.0Nov 29, 2024by github-actions[bot]

AI Summary

This release implements mixed catalog data requests with catalog updates, adds Databento symbology support for Interactive Brokers, and ports the `Portfolio` and `AccountManager` to Rust.

Key Highlights

  • Implemented mixed catalog data requests with catalog update
  • Added Databento symbology support for Interactive Brokers
  • Added STOP_MARKET and STOP_LIMIT order support for dYdX
  • Ported `Portfolio` and `AccountManager` to Rust

Breaking Changes

  • Renamed `TriggerType.LAST_TRADE` to `LAST_PRICE`

New Features

  • Implemented mixed catalog data requests
  • Added `metadata` parameter for data requests
  • Added `STOP_MARKET` and `STOP_LIMIT` order support for dYdX
  • Added `max_reconnection_tries` to data client config for dYdX
  • Added wallet subscription for Bybit
  • Added `price_precision` optional parameter for `DatabentoDataLoader`
  • Improved `Cache` behavior when adding recent data

Full Release Notes

# NautilusTrader 1.207.0 Beta

Released on 29th November 2024 (UTC).

### Enhancements
- Implemented mixed catalog data requests with catalog update (#2043), thanks @faysou
- Added Databento symbology support for Interactive Brokers (#2073), thanks @rsmb7z
- Added `metadata` parameter for data requests (#2043), thanks @faysou
- Added `STOP_MARKET` and `STOP_LIMIT` order support for dYdX (#2066), thanks @davidsblom
- Added `max_reconnection_tries` to data client config for dYdX (#2066), thanks @davidsblom
- Added wallet subscription for Bybit (#2076), thanks @sunlei
- Added docs clarity on loading historical bars (#2078), thanks @dodofarm
- Added `price_precision` optional parameter for `DatabentoDataLoader` methods
- Improved `Cache` behavior when adding more recent quotes, trades, or bars (now adds to cache)

### Internal Improvements
- Ported `Portfolio` and `AccountManager` to Rust (#2058), thanks @Pushkarm029
- Implemented `AsRef<str>` for `Price`, `Money`, and `Currency`
- Improved expired timer cleanup in clocks (#2064), thanks @twitu
- Improved live engines error logging (will now log all exceptions rather than just `RuntimeError`)
- Improved symbol normalization for Tardis
- Improved historical bar request performance for Tardis
- Improved `TradeId` Debug implementation to display value as proper UTF-8 string
- Refined `HttpClient` for use directly from Rust
- Refined Databento decoder (removed currency hard coding and use of `unsafe`)
- Upgraded `datafusion` crate to v43.0.0 (#2056), thanks @twitu

### Breaking Changes
- Renamed `TriggerType.LAST_TRADE` to `LAST_PRICE` (more conventional terminology)

### Fixes
- Fixed missing venue -> exchange mappings for Tardis integration
- Fixed account balance and order status parsing for dYdX (#2067), thanks @davidsblom
- Fixed parsing best effort opened order status for dYdX (#2068), thanks @davidsblom
- Fixed occasionally incorrect `price_precision`, `multiplier` and `lot_size` decoding for Databento instruments
- Fixed missing Arrow schemas for instrument deserialization
- Reconcile order book for dYdX when inconsistent (#2077), thanks @davidsblom