v1.214.0
nautechsystems/nautilus_traderv1.214.0Mar 28, 2025by github-actions[bot]
AI Summary
This release adds initial integration for Coinbase International Exchange and introduces Mark Price and Index Price data types. It also refactors the `Cache.add_mark_price` method to accept a dedicated update object.
Key Highlights
- Added initial integration for Coinbase International Exchange
- Introduced Mark Price and Index Price data types and subscriptions
- Refactored `Cache.add_mark_price` to accept `MarkPriceUpdate` object
Breaking Changes
- Changed `Cache.add_mark_price(self, InstrumentId instrument_id, Price price)` to `add_mark_price(self, MarkPriceUpdate mark_price)`
New Features
- Added `time_in_force` parameter for `Strategy.close_position` and `Strategy.close_all_positions`
- Added `MarkPriceUpdate` and `IndexPriceUpdate` data types
- Added Actor subscription methods (`subscribe_mark_prices`, `on_mark_price`, etc.)
- Added Cache methods for mark and index prices
- Added `UnixNanos.to_rfc3339()` for ISO 8601 string conversion
- Added `recv_window_ms` config for Bybit WebSocket order client
Full Release Notes
# NautilusTrader 1.214.0 Beta Released on 28th March 2025 (UTC). ### Enhancements - Added [Coinbase International Exchange](https://www.coinbase.com/en/international-exchange) initial integration adapter - Added `time_in_force` parameter for `Strategy.close_position(...)` - Added `time_in_force` parameter for `Strategy.close_all_positions(...)` - Added `MarkPriceUpdate` data type - Added `IndexPriceUpdate` data type - Added `Actor.subscribe_mark_prices(...)` - Added `Actor.subscribe_index_prices(...)` - Added `Actor.unsubscribe_mark_prices(...)` - Added `Actor.unsubscribe_index_prices(...)` - Added `Actor.on_mark_price(...)` - Added `Actor.on_index_price(...)` - Added `Cache.mark_price(...)` - Added `Cache.index_price(...)` - Added `Cache.mark_prices(...)` - Added `Cache.index_prices(...)` - Added `Cache.mark_price_count(...)` - Added `Cache.index_price_count(...)` - Added `Cache.has_mark_prices(...)` - Added `Cache.has_index_prices(...)` - Added `UnixNanos.to_rfc3339()` for ISO 8601 (RFC 3339) strings - Added `recv_window_ms` config for Bybit WebSocket order client (#2466), thanks @sunlei - Enhanced `UnixNanos` string parsing to support YYYY-MM-DD date format (interpreted as midnight UTC) ### Breaking Changes - Changed `Cache.add_mark_price(self, InstrumentId instrument_id, Price price)` to `add_mark_price(self, MarkPriceUpdate mark_price)` ### Internal Improvements - Improved `WebSocketClient` and `SocketClient` design with dedicated writer task and message channel - Completed global message bus design in Rust (#2460), thanks @filipmacek - Refactored enum dispatch (#2461), thanks @filipmacek - Refactored data interfaces to messages in Rust - Refined catalog file operations in Rust (#2454), thanks @faysou - Refined quote ticks and klines for Bybit (#2465), thanks @davidsblom - Standardized use of `anyhow::bail` (#2459), thanks @faysou - Ported `add_venue` for `BacktestEngine` in Rust (#2457), thanks @filipmacek - Ported `add_instrument` for `BacktestEngine` in Rust (#2469), thanks @filipmacek - Upgraded `redis` crate to v0.29.2 ### Fixes - Fixed race condition on multiple reconnect attempts for `WebSocketClient` and `SocketClient` - Fixed position state snapshot `ts_snapshot` value, which was always `ts_last` instead of timestamp when the snapshot was taken - Fixed instrument parsing for Tardis, now correctly applies changes and filters by `effective` - Fixed `OrderStatusReport` for conditional orders of dYdX (#2467), thanks @davidsblom - Fixed submitting stop market orders for dYdX (#2471), thanks @davidsblom - Fixed retrying HTTP calls on `DecodeError` for dYdX (#2472), thanks @davidsblom - Fixed `LIMIT_IF_TOUCHED` order type enum parsing for Bybit - Fixed `MARKET` order type enum parsing for Bybit - Fixed quote ticks for Polymarket to only emit new quote ticks when the top-of-book changes - Fixed error on cancel order for IB (#2475), thanks @FGU1 ### Documentation Updates - Improved custom data documentation (#2470), thanks @faysou ### Deprecations None