v1.169.0

nautechsystems/nautilus_traderv1.169.0Feb 18, 2023by github-actions[bot]

AI Summary

This release features a complete overhaul of the Binance adapter and introduces an optimized logger using Rust MPSC channels.

Key Highlights

  • Complete overhaul and improvements to Binance adapter.
  • Added Binance aggregated trades functionality with `use_agg_trade_ticks`.
  • Implemented optimized logger using Rust MPSC channel and separate thread.
  • Exposed `MatchingEngine` public API for custom functionality.

Breaking Changes

  • `NautilusConfig` objects are now pseudo-immutable (msgspec 0.13.0).
  • Renamed `OrderFactory.bracket` param `post_only_entry` -> `entry_post_only`.
  • Renamed `OrderFactory.bracket` param `post_only_tp` -> `tp_post_only`.
  • Renamed `build_time_bars_with_no_updates` -> `time_bars_build_with_no_updates`.
  • Renamed `OrderFactory.set_order_count()` -> `set_client_order_id_count()`.
  • Renamed `TradingNode.start()` to `TradingNode.run()`.

New Features

  • Added `OrderFactory.generate_client_order_id()`.
  • Added `OrderFactory.generate_order_list_id()`.
  • Added `OrderFactory.create_list(...)`.
  • Added `__len__` implementation for `OrderList`.
  • Exposed `TradingNode.run_async()` and `stop_async()`.

Full Release Notes

# NautilusTrader 1.169.0 Beta

Released on 18th February 2023 (UTC).

### Breaking Changes
- `NautilusConfig` objects now _pseudo-immutable_ from new msgspec 0.13.0
- Renamed `OrderFactory.bracket` param `post_only_entry` -> `entry_post_only` (consistency with other params)
- Renamed `OrderFactory.bracket` param `post_only_tp` -> `tp_post_only` (consistency with other params)
- Renamed `build_time_bars_with_no_updates` -> `time_bars_build_with_no_updates` (consistency with new param) 
- Renamed `OrderFactory.set_order_count()` -> `set_client_order_id_count()` (clarity)
- Renamed `TradingNode.start()` to `TradingNode.run()`

### Enhancements
- Complete overhaul and improvements to Binance adapter(s), thanks @poshcoe
- Added Binance aggregated trades functionality with `use_agg_trade_ticks`, thanks @poshcoe
- Added `time_bars_timestamp_on_close` option for configurable bar timestamping (True by default)
- Added `OrderFactory.generate_client_order_id()` (calls internal generator)
- Added `OrderFactory.generate_order_list_id()` (calls internal generator)
- Added `OrderFactory.create_list(...)` as easier method for creating order lists
- Added `__len__` implementation for `OrderList` (returns length of orders)
- Implemented optimized logger using Rust MPSC channel and separate thread
- Expose and improve `MatchingEngine` public API for custom functionality
- Exposed `TradingNode.run_async()` for easier running from async context
- Exposed `TradingNode.stop_async()` for easier stopping from async context

### Fixes
- Fixed registration of `SimulationModule` (and refine `Actor` base registration)
- Fixed loading of previously emulated and transformed orders (handles transforming `OrderInitialized` event)
- Fixed handling of `MARKET_TO_LIMIT` orders in matching and risk engines, thanks for reporting @martinsaip