Nautilus-trader

Latest version: v1.214.0

Safety actively analyzes 722491 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 20

9.0.1

If the path to the temporary directory on Linux or macOS contained a space,
this would break removal of the temporary image file after im.show() (and related actions),
and potentially remove an unrelated file. This been present since PIL.

This release upgrades to pillow 9.0.1.

Note the minor version was incremented in error.

---

9.0.0

- PIL.ImageMath.eval allows evaluation of arbitrary expressions, such as ones that use the Python exec method
- path_getbbox in path.c has a buffer over-read during initialization of ImagePath.Path
- path_getbbox in path.c improperly initializes ImagePath.Path

This release upgrades to `pillow 9.0.0`.

---

1.214.0

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

---

1.213.0

Released on 16th March 2025 (UTC).

Enhancements
- Added `CryptoOption` instrument, supporting inverse and fractional sizes
- Added `Cache.prices(...)` to return a map of latest price per instrument for a price type
- Added `use_uuid_client_order_ids` config option for `StrategyConfig`
- Added catalog consolidation functions of several parquet files into one (2421), thanks faysou
- Added FDUSD (First Digital USD) crypto `Currency` constant
- Added initial leverage, `margin_mode` and `position_mode` config options for Bybit (2441), thanks sunlei
- Updated parquet catalog in Rust with recent features (2442), thanks faysou

Breaking Changes
None

Internal Improvements
- Added `timeout_secs` parameter to `HttpClient` for default timeouts
- Added additional precision validations for `OrderMatchingEngine`
- Added symmetric comparison impls between `u64` and `UnixNanos`
- Improved `InstrumentProvider` error handling when loading (2444), thanks davidsblom
- Improved order denied reason message for balance impact
- Handle BybitErrors when updating instruments for ByBit (2437), thanks davidsblom
- Handle unexpected errors when fetching order books for dYdX (2445), thanks davidsblom
- Retry if HttpError is raised for dYdX (2438), thanks davidsblom
- Refactored some Rust logs to use named parameters in format strings (2443), thanks faysou
- Some minor performance optimizations for Bybit and dYdX adapters (2448), thanks sunlei
- Ported backtest engine and kernel to Rust (2449), thanks filipmacek
- Upgraded `pyo3` and `pyo3-async-runtimes` crates to v0.24.0
- Upgraded `tokio` crate to v1.44.1

Fixes
- Fixed source distribution (sdist) packaging
- Fixed `Clock.timer_names()` memory issue resulting in an empty list
- Fixed underflow panic when setting a time alert in the past (2446), thanks for reporting uxbux
- Fixed logger name for `Strategy` custom `strategy_id`s
- Fixed unbound variable for Bybit (2433), thanks davidsblom

Documentation Updates
- Clarify docs for timestamp properties in `Data` (2450), thanks stefansimik
- Updated environment setup document (2452), thanks faysou

Deprecations
None

---

1.212.0

Released on 11th March 2025 (UTC).

This release introduces [uv](https://docs.astral.sh/uv) as the Python project and dependency management tool.

Enhancements
- Added `OwnOrderBook` and `OwnBookOrder` to track own orders and prevent self-trades in market making
- Added `manage_own_order_books` config option for `ExecEngineConfig` to enable own order tracking
- Added `Cache.own_order_book(...)`, `Cache.own_bid_orders(...)` and `Cache.own_ask_orders(...)` for own order tracking
- Added optional beta weighting and percent option greeks (2317), thanks faysou
- Added pnl information to greeks data (2378), thanks faysou
- Added precision inference for `TardisCSVDataLoader`, where `price_precision` and `size_precision` are now optional
- Added `Order.ts_accepted` property
- Added `Order.ts_submitted` property
- Added `UnixNanos::to_datetime_utc()` in Rust
- Added `Mark` variant for `PriceType` enum
- Added mark price handling for `Cache`
- Added mark exchange rate handling for `Cache`
- Added `PortfolioConfig` for configuration settings specific to the `Portfolio`
- Added `use_mark_prices`, `use_mark_xrates` and `convert_to_account_base_currency` options for `PortfolioConfig`
- Added mark price calculations and xrate handling for `Portfolio`
- Added Rust debugging support and refined cargo nextest usage (2335, 2339), thanks faysou
- Added catalog write mode options (2365), thanks faysou
- Added `BarSpecification` to msgspec encoding and decoding hooks (2373), thanks pierianeagle
- Added `ignore_external_orders` config option for `BetfairExecClientConfig`, default `False` to retain current behavior
- Added requests for order book snapshots with HTTP for dYdX (2393), thanks davidsblom

Breaking Changes
- Removed [talib](https://github.com/nautechsystems/nautilus_trader/tree/develop/nautilus_trader/indicators/ta_lib) subpackage (see deprecations for v1.211.0)
- Removed internal `ExchangeRateCalculator`, replaced with `get_exchange_rate(...)` function implemented in Rust
- Replaced `ForexSession` enum with equivalent from PyO3
- Replaced `ForexSessionFilter` with equivalent functions from PyO3
- Renamed `InterestRateData` to `YieldCurveData`
- Renamed `Cache.add_interest_rate_curve` to `add_yield_curve`
- Renamed `Cache.interest_rate_curve` to `yield_curve`
- Renamed `OrderBook.count` to `update_count` for clarity
- Moved `ExecEngineConfig.portfolio_bar_updates` config option to `PortfolioConfig.bar_updates`

Internal Improvements
- Added initial `Cache` benchmarking for orders (2341), thanks filipmacek
- Added support for `CARGO_BUILD_TARGET` environment variable in `build.py` (2385), thanks sunlei
- Added test for time-bar aggregation (2391), thanks stefansimik and faysou
- Implemented actor framework and message bus v3 (2402), thanks twitu
- Implemented latency modeling for SimulatedExchange in Rust (2423), thanks filipmacek
- Implemented exchange rate calculations in Rust
- Improved handling of `oms_type` for `StrategyConfig` which now correctly handles the `OmsType` enum
- Improved Binance websocket connections management to allow more than 200 streams (2369), thanks lidarbtc
- Improved log event timestamping to avoid clock or time misalignments when events cross to the logging thread
- Improved error logging for live engines to now include stacktrace for easier debugging
- Improved logging initialization error handling to avoid panicking in Rust
- Improved Redis cache database queries, serialization, error handling and connection management (2295, 2308, 2318), thanks Pushkarm029
- Improved validation for `OrderList` to check all orders are for the same instrument ID
- Improved `Controller` functionality with ability to create actors and strategies from configs (2322), thanks faysou
- Improved `Controller` creation for more streamlined trader registration, and separate clock for timer namespacing (2357), thanks faysou
- Improved build by adding placeholders to avoid unnecessary rebuilds (2336), thanks bartolootrit
- Improved consistency of `OrderMatchingEngine` between Cython and Rust and fix issues (2350), thanks filipmacek
- Removed obsolete reconnect guard for dYdX (2334), thanks davidsblom
- Refactored data request interfaces into messages (2260), thanks faysou
- Refactored data subscribe interfaces into messages (2280), thanks faysou
- Refactored reconciliation interface into messages (2375), thanks faysou
- Refactored `_handle_query_group` to work with `update_catalog` (2412), thanks faysou
- Refactored execution message handling in Rust (2291), thanks filipmacek
- Refactored repetitive code in backtest examples (2387, 2395), thanks stefansimik
- Refined yield curve data (2300), thanks faysou
- Refined bar aggregators in Rust (2311), thanks faysou
- Refined greeks computation (2312), thanks faysou
- Refined underlying filtering in portfolio_greeks (2382), thanks faysou
- Refined `request_instruments` granularity for Databento (2347), thanks faysou
- Refined Rust date functions (2356), thanks faysou
- Refined parsing of IB symbols (2388), thanks faysou
- Refined `base_template` behaviour in parquet write_data (2389), thanks faysou
- Refined mixed catalog client requests (2405), thanks faysou
- Refined update catalog docstring (2411), thanks faysou
- Refined to use `next_back` instead of `last` for identifier tag functions (2414), thanks twitu
- Refined and optimized `OrderBook` in Rust
- Cleaned up PyO3 migration artifacts (2326), thanks twitu
- Ported `StreamingFeatherWriter` to Rust (2292), thanks twitu
- Ported `update_limit_order` for `OrderMatchingEngine` in Rust (2301), thanks filipmacek
- Ported `update_stop_market_order` for `OrderMatchingEngine` in Rust (2310), thanks filipmacek
- Ported `update_stop_limit_order` for `OrderMatchingEngine` in Rust (2314), thanks filipmacek
- Ported market-if-touched order handling for `OrderMatchingEngine` in Rust (2329), thanks filipmacek
- Ported limit-if-touched order handling for `OrderMatchingEngine` in Rust (2333), thanks filipmacek
- Ported market-to-limit order handling for `OrderMatchingEngine` in Rust (2354), thanks filipmacek
- Ported trailing stop order handling for `OrderMatchingEngine` in Rust (2366, 2376), thanks filipmacek
- Ported contingent orders handling for `OrderMatchingEngine` in Rust (2404), thanks filipmacek
- Updated Databento `publishers.json` mappings file(s)
- Upgraded `nautilus-ibapi` to 10.30.1 with necessary changes for Interactive Brokers (2420), thanks FGU1
- Upgraded Rust to 1.85.0 and 2024 edition
- Upgraded `arrow` and `parquet` crates to v54.2.1
- Upgraded `databento` crate to v0.20.0 (upgrades the `dbn` crate to v0.28.0)
- Upgraded `datafusion` crate to v46.0.0
- Upgraded `pyo3` crate to v0.23.5
- Upgraded `tokio` crate to v1.44.0

Fixes
- Fixed large difference between `Data` enum variants (2315), thanks twitu
- Fixed `start` and `end` range filtering for `TardisHttpClient` to use API query params
- Fixed built-in data type Arrow schemas for `StreamingFeatherWriter`, thanks for reporting netomenoci
- Fixed memory allocation performance issue for `TardisCSVDataLoader`
- Fixed `effective` timestamp filtering for `TardisHttpClient` to now only retain latest version at or before `effective`
- Fixed contract `activation` for Binance Futures, now based on the `onboardDate` field
- Fixed hard-coded signature type for `PolymarketExecutionClient`
- Fixed unsubscribing from quotes for dYdX (2331), thanks davidsblom
- Fixed docstrings for dYdX factories (2415), thanks davidsblom
- Fixed incorrect type annotations in `_request_instrument` signature (2332), thanks faysou
- Fixed composite bars subscription (2337), thanks faysou
- Fixed sub command issue in some adapters (2343), thanks faysou
- Fixed `bypass_logging` fixture to keep log guard alive for entire test session
- Fixed time parsing for IB adapter (2360), thanks faysou
- Fixed bad `ts_init` value in IB weekly and monthly bar (2355), thanks Endura2024
- Fixed bar timestamps for IB (2380), thanks Endura2024
- Fixed backtest example load bars from custom CSV (2383), thanks hanksuper
- Fixed subscribe composite bars (2390), thanks faysou
- Fixed invalid link in IB docs (2401), thanks stefansimik
- Fixed cache index loading to ensure persisted data remains available after startup, thanks for reporting Saransh-28
- Fixed bars pagination, ordering and limit for Bybit
- Fixed `update_bar` aggregation function to guarantee high and low price invariants (2430), thanks hjander and faysou

Documentation Updates
- Added documentation for messaging styles (2410), thanks stefansimik
- Added backtest clock and timers example (2327), thanks stefansimik
- Added backtest bar aggregation example (2340), thanks stefansimik
- Added backtest portfolio example (2362), thanks stefansimik
- Added backtest cache example (2370), thanks stefansimik
- Added backtest cascaded indicators example (2398), thanks stefansimik
- Added backtest custom event with msgbus example (2400), thanks stefansimik
- Added backtest messaging with msgbus example (2406), thanks stefansimik
- Added backtest messaging with actor & data example (2407), thanks stefansimik
- Added backtest messaging with actor & signal example (2408), thanks stefansimik
- Added indicators example (2396), thanks stefansimik
- Added documentation for debugging with Rust (2325), thanks faysou
- Added MRE strategy example (2352), thanks stefansimik
- Added data catalog example (2353), thanks stefansimik
- Improved and expandd bar aggregation docs (2384), thanks stefansimik
- Improved `emulation_trigger` parameter description in docstrings (2313), thanks stefansimik
- Improved docs for emulated orders (2316), thanks stefansimik
- Improved getting started doc for backtesting API levels (2324), thanks faysou
- Improved FSM example explanations for beginners (2351), thanks stefansimik
- Refined option greeks docstrings (2320), thanks faysou
- Refined adapters concept documentation (2358), thanks faysou
- Fixed typo in docs/concepts/actors.md (2422), thanks lsamaciel
- Fixed singular noun in docs/concepts/instruments.md (2424), thanks lsamaciel
- Fixed typo in docs/concepts/data.md (2426), thanks lsamaciel
- Fixed Limit-If-Touched example in docs/concepts/orders.md (2429), thanks lsamaciel

Deprecations
None

---

1.211.0

Released on 9th February 2025 (UTC).

This release introduces [high-precision mode](https://nautilustrader.io/docs/nightly/concepts/overview#value-types),
where value types such as `Price`, `Quantity` and `Money` are now backed by 128-bit integers (instead of 64-bit),
thereby increasing maximum precision to 16, and vastly expanding the allowable value ranges.

This will address precision and value range issues experienced by some crypto users, alleviate higher timeframe bar volume limitations, as well as future proofing the platform.

See the [RFC](https://github.com/nautechsystems/nautilus_trader/issues/2084) for more details.
For an explanation on compiling with or without high-precision mode, see the [precision-mode](https://nautilustrader.io/docs/nightly/getting_started/installation/#precision-mode) section of the installation guide.

**For migrating data catalogs due to the breaking changes, see the [data migrations guide](https://nautilustrader.io/docs/nightly/concepts/data#data-migrations)**.

**This release will be the final version that uses Poetry for package and dependency management.**

Enhancements
- Added `high-precision` mode for 128-bit integer backed value types (2072), thanks twitu
- Added instrument definitions range requests for `TardisHttpClient` with optional `start` and `end` filter parameters
- Added `quote_currency`, `base_currency`, `instrument_type`, `contract_type`, `active`, `start` and `end` filters for `TardisInstrumentProvider`
- Added `log_commands` config option for `ActorConfig`, `StrategyConfig`, `ExecAlgorithmConfig` for more efficient log filtering
- Added additional limit parameters for `BettingInstrument` constructor
- Added `venue_position_id` parameter for `OrderStatusReport`
- Added bars update support for `Portfolio` PnLs (2239), thanks faysou
- Added optional `params` for `Strategy` order management methods (symmetry with `Actor` data methods) (2251), thanks faysou
- Added heartbeats for Betfair clients to keep streams alive (more robust when initial subscription delays)
- Added `timeout_shutdown` config option for `NautilusKernelConfig`
- Added IOC time in force mapping for Betfair orders
- Added `min_market_start_time` and `max_market_start_time` time range filtering for `BetfairInstrumentProviderConfig`
- Added `default_min_notional` config option for `BetfairInstrumentProviderConfig`
- Added `stream_conflate_ms` config option for `BetfairDataClientConfig`
- Added `recv_window_ms` config option for `BybitDataClientConfig` and `BybitExecClientConfig`
- Added `open_check_open_only` config option for `LiveExecEngineConfig`
- Added `BetSide` enum (to support `Bet` and `BetPosition`)
- Added `Bet` and `BetPosition` for betting market risk and PnL calculations
- Added `total_pnl` and `total_pnls` methods for `Portfolio`
- Added optional `price` parameter for `Portfolio` unrealized PnL and net exposure methods

Breaking Changes
- Renamed `OptionsContract` instrument to `OptionContract` for more technically correct terminology (singular)
- Renamed `OptionsSpread` instrument to `OptionSpread` for more technically correct terminology (singular)
- Renamed `options_contract` modules to `option_contract` (see above)
- Renamed `options_spread` modules to `option_spread` (see above)
- Renamed `InstrumentClass.FUTURE_SPREAD` to `InstrumentClass.FUTURES_SPREAD` for more technically correct terminology
- Renamed `event_logging` config option to `log_events`
- Renamed `BetfairExecClientConfig.request_account_state_period` to `request_account_state_secs`
- Moved SQL schema directory to `schemas/sql` (reinstall the Nautilus CLI with `make install-cli`)
- Changed `OrderBookDelta` Arrow schema to use `FixedSizeBinary` fields to support the new precision modes
- Changed `OrderBookDepth10` Arrow schema to use `FixedSizeBinary` fields to support the new precision modes
- Changed `QuoteTick` Arrow schema to use `FixedSizeBinary` fields to support the new precision modes
- Changed `TradeTick` Arrow schema to use `FixedSizeBinary` fields to support the new precision modes
- Changed `Bar` Arrow schema to use `FixedSizeBinary` fields to support the new precision modes
- Changed `BettingInstrument` default `min_notional` to `None`
- Changed meaning of `ws_connection_delay_secs` for [PolymarketDataClientConfig](https://github.com/nautechsystems/nautilus_trader/blob/develop/nautilus_trader/adapters/polymarket/config.py) to be **non-initial** delay (#2271)
- Changed `GATEIO` Tardis venue to `GATE_IO` for consistency with `CRYPTO_COM` and `BLOCKCHAIN_COM`
- Removed `max_ws_reconnection_tries` for dYdX configs (no longer applicable with infinite retries and exponential backoff)
- Removed `max_ws_reconnection_tries` for Bybit configs (no longer applicable with infinite retries and exponential backoff)
- Removed remaining `max_ws_reconnection_tries` for Bybit configs (2290), thanks sunlei

Internal Improvements
- Added `ThrottledEnqueuer` for more efficient and robust live engines queue management and logging
- Added `OrderBookDeltaTestBuilder` in Rust to improve testing (2234), thanks filipmacek
- Added custom certificate loading for `SocketClient` TLS
- Added `check_nonempty_string` for string validation in Rust
- Improved Polymarket WebSocket subscription handling by configurable delay (2271), thanks ryantam626
- Improved `WebSocketClient` with state management, error handling, timeouts and robust reconnects with exponential backoff
- Improved `SocketClient` with state management, error handling, timeouts and robust reconnects with exponential backoff
- Improved `TradingNode` shutdown when running with `asyncio.run()` (more orderly handling of event loop)
- Improved `NautilusKernel` pending tasks cancellation on shutdown
- Improved `TardisHttpClient` requests and error handling
- Improved log file writer to strip ANSI escape codes and unprintable chars
- Improved `clean` make target behavior and added `distclean` make target (2286), demonkoryu
- Refined `Currency` `name` to accept non-ASCII characters (common for foreign currencies)
- Refactored CI with composite actions (2242), thanks sunlei
- Refactored Option Greeks feature (2266), thanks faysou
- Changed validation to allow zero commission for `PerContractFeeModel` (2282), thanks stefansimik
- Changed to use `mold` as the linker in CI (2254), thanks sunlei
- Ported market order processing for `OrderMatchingEngine` in Rust (2202), thanks filipmacek
- Ported limit order processing for `OrderMatchingEngine` in Rust (2212), thanks filipmacek
- Ported stop limit order processing for `OrderMatchingEngine` in Rust (2225), thanks filipmacek
- Ported `CancelOrder` processing for `OrderMatchingEngine` in Rust (2231), thanks filipmacek
- Ported `CancelAllOrders` processing for `OrderMatchingEngine` in Rust (2253), thanks filipmacek
- Ported `BatchCancelOrders` processing for `OrderMatchingEngine` in Rust (2256), thanks filipmacek
- Ported expire order processing for `OrderMatchingEngine` in Rust (2259), thanks filipmacek
- Ported modify order processing for `OrderMatchingEngine` in Rust (2261), thanks filipmacek
- Ported generate fresh account state for `SimulatedExchange` in Rust (2272), thanks filipmacek
- Ported adjust account for SimulatedExchange in Rust (2273), thanks filipmacek
- Continued porting `RiskEngine` to Rust (2210), thanks Pushkarm029
- Continued porting `ExecutionEngine` to Rust (2214), thanks Pushkarm029
- Continued porting `OrderEmulator` to Rust (2219, 2226), thanks Pushkarm029
- Moved `model` crate stubs into defaults (2235), thanks fhill2
- Upgraded `pyo3` crate to v0.23.4
- Upgraded `pyo3-async-runtimes` crate to v0.23.0

Fixes
- Fixed `LiveTimer` immediate fire when start time zero (2270), thanks for reporting bartolootrit
- Fixed order book action parsing for Tardis (ensures zero sizes in snapshots work with the tighter validation for `action` vs `size`)
- Fixed PnL calculations for betting instruments in `Portfolio`
- Fixed net exposure for betting instruments in `Portfolio`
- Fixed backtest start and end time validation assertion (2203), thanks davidsblom
- Fixed `CustomData` import in `DataEngine` (2207), thanks graceyangfan and faysou
- Fixed databento helper function (2208), thanks faysou
- Fixed live reconciliation of generated order fills to use the `venue_position_id` (when provided), thanks for reporting sdk451
- Fixed `InstrumentProvider` initialization behavior when `reload` flag `True`, thanks ryantam626
- Fixed handling of Binance HTTP error messages (not always JSON-parsable, leading to `msgspec.DecodeError`)
- Fixed `CARGO_TARGET_DIR` environment variable for build script (2228), thanks sunlei
- Fixed typo in `delta.rs` doc comment (2230), thanks eltociear
- Fixed memory leak in network PyO3 layer caused by the `gil-refs` feature (2229), thanks for reporting davidsblom
- Fixed reconnect handling for Betfair (2232, 2288, 2289), thanks limx0
- Fixed `instrument.id` null dereferences in error logs (2237), thanks for reporting ryantam626
- Fixed schema for listing markets of dYdX (2240), thanks davidsblom
- Fixed realized pnl calculation in `Portfolio` where flat positions were not included in cumulative sum (2243), thanks faysou
- Fixed update order in `Cache` for Rust (2248), thanks filipmacek
- Fixed websocket schema for market updates of dYdX (2258), thanks davidsblom
- Fixed handling of empty book messages for Tardis (resulted in `deltas` cannot be empty panicking)
- Fixed `Cache.bar_types` `aggregation_source` filtering, was incorrectly using `price_type` (2269), thanks faysou
- Fixed missing `combo` instrument type for Tardis integration
- Fixed quote tick processing from bars in `OrderMatchingEngine` resulting in sizes below the minimum increment (2275), thanks for reporting miller-moore
- Fixed initialization of `BinanceErrorCode`s requiring `int`
- Fixed resolution of Tardis `BINANCE_DELIVERY` venue for COIN-margined contracts
- Fixed hang in rate limiter (2285), thanks WyldeCat
- Fixed typo in `InstrumentProviderConfig` docstring (2284), thanks ikeepo
- Fixed handling of `tick_size_change` message for Polymarket

Documentation Updates
- Added Databento overview tutorial (2233, 2252), thanks stefansimik
- Added docs for Actor (2233), thanks stefansimik
- Added docs for Portfolio limitations with bar data (2233), thanks stefansimik
- Added docs overview for example locations in repository (2287), thanks stefansimik
- Improved docstrings for Actor subscription and request methods
- Refined `streaming` parameter description (2293), thanks faysou and stefansimik

Deprecations
- The [talib](https://github.com/nautechsystems/nautilus_trader/tree/develop/nautilus_trader/indicators/ta_lib) subpackage for indicators is deprecated and will be removed in a future version, see [RFC](https://github.com/nautechsystems/nautilus_trader/issues/2206)

---

Page 1 of 20

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.