# NautilusTrader Documentation > NautilusTrader is an open-source, production-grade, Rust-native trading engine infrastructure for multi-asset, multi-venue trading systems. The docs cover architecture, deterministic simulation, live trading, integrations, and developer workflows. Docs are versioned: latest tracks the current release; nightly tracks the unreleased develop branch. Raw markdown for any page is available under https://nautilustrader.io/docs/md/. ## Getting Started - [Backtest (High-Level API)](https://nautilustrader.io/docs/md/latest/getting_started/backtest_high_level.md): Use BacktestNode for config-driven backtesting with the Parquet data catalog. This is the recommended path for production workflows because the strategies... - [Backtest (Low-Level API)](https://nautilustrader.io/docs/md/latest/getting_started/backtest_low_level.md): Use BacktestEngine for direct component access: load market data, wire up strategies and execution algorithms, and run backtests with full control over... - [Installation](https://nautilustrader.io/docs/md/latest/getting_started/installation.md): NautilusTrader is officially supported for Python 3.12-3.14 on the following 64-bit platforms: - [Quickstart](https://nautilustrader.io/docs/md/latest/getting_started/quickstart.md): Run your first backtest in under five minutes. ## Concepts - [Accounting](https://nautilustrader.io/docs/md/latest/concepts/accounting.md): The accounting subsystem tracks balances, margins, and PnL for every account the platform interacts with. This guide covers the data model, the query API... - [Actors](https://nautilustrader.io/docs/md/latest/concepts/actors.md): A data actor receives requested and subscribed data, handles system events, and manages component state. In Python, extend the DataActor class; in Rust... - [Adapters](https://nautilustrader.io/docs/md/latest/concepts/adapters.md): Adapters connect data providers and trading venues to NautilusTrader. They translate venue-specific protocols into the domain objects and events used by the... - [Architecture](https://nautilustrader.io/docs/md/latest/concepts/architecture.md): This page describes NautilusTrader's components, runtime boundaries, and data flows. The design principles and policies guide this structure. - [Behavioral Models](https://nautilustrader.io/docs/md/latest/concepts/behavioral_models.md): This page describes the pluggable models that change or extend NautilusTrader behavior. - [Cache](https://nautilustrader.io/docs/md/latest/concepts/cache.md): The Cache is the central in-memory store for trading state and recent market data. Actors and strategies use it to read data maintained by the data and... - [Configuration](https://nautilustrader.io/docs/md/latest/concepts/configuration.md): NautilusTrader uses typed configuration objects for data clients, execution clients, engines, and strategies. Higher-level configs compose these component... - [Continuous Futures](https://nautilustrader.io/docs/md/latest/concepts/continuous_futures.md): A continuous future is a derived series that splices consecutive futures contracts into one adjusted price stream. Each underlying contract expires, so the... - [Custom Data](https://nautilustrader.io/docs/md/latest/concepts/custom_data.md): NautilusTrader supports custom data authored in Python or Rust. Both forms use the same runtime routing, persistence, and query pipeline as built-in data. - [DST](https://nautilustrader.io/docs/md/latest/concepts/dst.md): Deterministic simulation testing (DST) runs NautilusTrader under a seed-controlled runtime. This guide defines: - [Event Sourcing](https://nautilustrader.io/docs/md/latest/concepts/event_sourcing.md): Event sourcing gives NautilusTrader a durable, ordered record of the messages that change engine state. The event store records those messages at the system... - [Greeks](https://nautilustrader.io/docs/md/latest/concepts/greeks.md): Nautilus provides two paths for working with option Greeks, which measure how option prices respond to changes in market variables: - [Live Trading](https://nautilustrader.io/docs/md/latest/concepts/live.md): The same strategy and execution-algorithm code can run across backtest and live environments. Live execution also introduces venue, transport, timing... - [Logging](https://nautilustrader.io/docs/md/latest/concepts/logging.md): The platform provides logging for both backtesting and live trading using a high-performance logging subsystem implemented in Rust with a standardized... - [Message Bus](https://nautilustrader.io/docs/md/latest/concepts/message_bus.md): The MessageBus enables communication between system components through message passing. This design creates a loosely coupled architecture where components... - [Networking](https://nautilustrader.io/docs/md/latest/concepts/networking.md): NautilusTrader adapters use the shared nautilus-network clients for HTTP request/response APIs, WebSocket streams, and suffix-framed TCP protocols. These... - [Options](https://nautilustrader.io/docs/md/latest/concepts/options.md): Nautilus provides first-class support for options trading across traditional and crypto markets. This includes option-specific instrument types... - [Order Book](https://nautilustrader.io/docs/md/latest/concepts/order_book.md): NautilusTrader implements its order books in Rust. OrderBook maintains public market depth for an instrument. OwnOrderBook tracks your own orders separately... - [Overview](https://nautilustrader.io/docs/md/latest/concepts/overview.md): NautilusTrader is an open-source, production-grade, Rust-native engine for multi-asset, multi-venue trading systems. - [Portfolio](https://nautilustrader.io/docs/md/latest/concepts/portfolio.md): The Portfolio maintains account and position-derived state for a trading node or backtest. Strategies use it to query accounts, PnL, exposure, margin... - [Positions](https://nautilustrader.io/docs/md/latest/concepts/positions.md): This guide explains how NautilusTrader creates and updates positions from order fills, calculates profit and loss (PnL), and preserves closed cycles under... - [Python](https://nautilustrader.io/docs/md/latest/concepts/python.md): NautilusTrader provides a Python control surface over the Rust core through PyO3. Use this guide to understand which runtime owns each part of the system... - [Reports](https://nautilustrader.io/docs/md/latest/concepts/reports.md): This guide explains the portfolio analysis and reporting capabilities provided by the ReportProvider class, and how these reports are used for PnL... - [Rust](https://nautilustrader.io/docs/md/latest/concepts/rust.md): Nautilus has a complete Rust implementation under the crates/ directory. You can write actors, strategies, run backtests, and trade live without Python. The... - [Strategies](https://nautilustrader.io/docs/md/latest/concepts/strategies.md): A strategy inherits the Strategy class and implements the methods its logic requires. Strategy builds on DataActor and adds order management. - [Synthetics](https://nautilustrader.io/docs/md/latest/concepts/synthetics.md): Synthetic instruments are locally defined instruments whose prices derive from other instruments. They can combine components from one venue or many venues... - [Value Types](https://nautilustrader.io/docs/md/latest/concepts/value_types.md): NautilusTrader provides specialized value types for representing core trading concepts: Price, Quantity, and Money. These types use fixed-point arithmetic... - [Visualization](https://nautilustrader.io/docs/md/latest/concepts/visualization.md): NautilusTrader provides interactive HTML tearsheets for analyzing backtest results through an extensible visualization system built on Plotly. You can... - [Backtest Accounts and Margin](https://nautilustrader.io/docs/md/latest/concepts/backtesting/accounts-and-margin.md): Backtest venues use simulated accounts for balances, margin, and funding settlement. For the full account model and margin formulas, see Accounting. - [Backtest APIs and Repeated Runs](https://nautilustrader.io/docs/md/latest/concepts/backtesting/apis-and-runs.md): NautilusTrader provides a low-level BacktestEngine API for direct control and a high-level BacktestNode API for catalog-backed, configurable runs. - [Bar-Based Execution](https://nautilustrader.io/docs/md/latest/concepts/backtesting/bar-execution.md): Bar data records the open, high, low, close, and volume for an interval. It does not record when each price occurred within that interval or whether the... - [Backtest Data and Venues](https://nautilustrader.io/docs/md/latest/concepts/backtesting/data-and-venues.md): Historical data advances the backtest clock, updates simulated market state, and drives strategy callbacks. The venue's book_type determines which data can... - [Backtest Execution Flow](https://nautilustrader.io/docs/md/latest/concepts/backtesting/execution-flow.md): The backtest loop processes market state before strategy callbacks, then settles commands generated at the same timestamp. - [Fill Models](https://nautilustrader.io/docs/md/latest/concepts/backtesting/fill-models.md): Historical data cannot show how a simulated order would have interacted with other market participants. A fill model controls the assumptions NautilusTrader... - [Fill Prices and Matching](https://nautilustrader.io/docs/md/latest/concepts/backtesting/fill-prices-and-matching.md): The backtest matching engine treats recorded order book and trade data as immutable. Simulated fills do not edit the historical book. This preserves the... - [Backtesting](https://nautilustrader.io/docs/md/latest/concepts/backtesting/index.md): Backtesting simulates trading against historical data using the same core system components used in live trading: built-in engines, the Cache, the... - [Simulation Modules](https://nautilustrader.io/docs/md/latest/concepts/backtesting/simulation-modules.md): This page describes simulation module configuration, lifecycle, and failure handling. - [Trade-Based Execution](https://nautilustrader.io/docs/md/latest/concepts/backtesting/trade-execution.md): Trade ticks trigger matching by default when a venue has trade_execution=True. A trade provides evidence that liquidity traded at its price, so it can fill... - [Bar](https://nautilustrader.io/docs/md/latest/concepts/data/bar.md): Bar represents OHLCV price and volume data for a specific BarType. A venue or data provider can supply bars, or NautilusTrader can aggregate them from quote... - [Data catalog](https://nautilustrader.io/docs/md/latest/concepts/data/catalog.md): The data catalog stores NautilusTrader data in Parquet files for backtesting, live trading, and research. - [FundingRateUpdate](https://nautilustrader.io/docs/md/latest/concepts/data/funding_rate_update.md): FundingRateUpdate represents the funding rate for a perpetual swap instrument. It can also include the funding interval and next funding timestamp when the... - [Data](https://nautilustrader.io/docs/md/latest/concepts/data/index.md): NautilusTrader supports granular order book data, quotes, trades, bars, reference prices, and custom data. This overview links to the built-in types and... - [IndexPriceUpdate](https://nautilustrader.io/docs/md/latest/concepts/data/index_price_update.md): IndexPriceUpdate represents an external index price used by a derivatives market. Venues often use index prices to calculate mark prices, funding, or... - [InstrumentClose](https://nautilustrader.io/docs/md/latest/concepts/data/instrument_close.md): InstrumentClose represents a closing price event for an instrument at a venue. It covers end-of-session closes and contract-expiry close events. - [InstrumentStatus](https://nautilustrader.io/docs/md/latest/concepts/data/instrument_status.md): InstrumentStatus represents a change in an instrument's trading state. It captures venue status events such as pre-open, trading, halt, pause, close, and... - [MarkPriceUpdate](https://nautilustrader.io/docs/md/latest/concepts/data/mark_price_update.md): MarkPriceUpdate represents an instrument's mark price. Derivatives venues commonly use mark prices for margining, liquidation checks, and unrealized PnL... - [OptionGreeks](https://nautilustrader.io/docs/md/latest/concepts/data/option_greeks.md): OptionGreeks represents venue-provided option sensitivities and implied volatility for one option instrument. As a native Data enum variant, it can be... - [OrderBookDelta](https://nautilustrader.io/docs/md/latest/concepts/data/order_book_delta.md): OrderBookDelta represents one change to an order book. It is the most granular built-in book data type and supports the book types NautilusTrader uses for... - [OrderBookDeltas](https://nautilustrader.io/docs/md/latest/concepts/data/order_book_deltas.md): OrderBookDeltas groups a non-empty batch of OrderBookDelta records from one logical book event. It reduces per-message overhead when an adapter receives or... - [OrderBookDepth](https://nautilustrader.io/docs/md/latest/concepts/data/order_book_depth.md): OrderBookDepth represents a snapshot with a variable number of bid and ask levels. Use it when a venue publishes a self-contained depth snapshot rather than... - [QuoteTick](https://nautilustrader.io/docs/md/latest/concepts/data/quote_tick.md): QuoteTick represents the top-of-book bid and ask for one instrument. It carries the best available bid and ask prices and sizes at a specific event time. - [TradeTick](https://nautilustrader.io/docs/md/latest/concepts/data/trade_tick.md): TradeTick represents one executed trade or match event from a venue. It carries the traded price, size, aggressor side, and venue trade identifier. - [AccountState](https://nautilustrader.io/docs/md/latest/concepts/events/account_state.md): AccountState carries a snapshot of an account's balances and margins. The system publishes it when the venue reports an account update through the execution... - [Events](https://nautilustrader.io/docs/md/latest/concepts/events/index.md): NautilusTrader models execution, position, account, and time changes as events. The MessageBus routes these events to interested components and, where... - [OrderAccepted](https://nautilustrader.io/docs/md/latest/concepts/events/order_accepted.md): OrderAccepted represents an order having been accepted by the trading venue. The ExecutionEngine applies it to the order, updates the Cache, and publishes... - [OrderCancelRejected](https://nautilustrader.io/docs/md/latest/concepts/events/order_cancel_rejected.md): OrderCancelRejected represents a CancelOrder command having been rejected by the trading venue. The ExecutionEngine applies it to the order, updates the... - [OrderCanceled](https://nautilustrader.io/docs/md/latest/concepts/events/order_canceled.md): OrderCanceled records an order reaching the terminal CANCELED state. The execution pipeline applies it to the order, updates the Cache, and publishes it on... - [OrderDenied](https://nautilustrader.io/docs/md/latest/concepts/events/order_denied.md): OrderDenied represents an order having been denied by the Nautilus system. The execution pipeline applies it to the order, updates the Cache, and publishes... - [OrderEmulated](https://nautilustrader.io/docs/md/latest/concepts/events/order_emulated.md): OrderEmulated records that the OrderEmulator has taken an order under local emulation. The emulator applies the event to the order, updates the Cache, and... - [OrderExpired](https://nautilustrader.io/docs/md/latest/concepts/events/order_expired.md): OrderExpired records that an order has expired. The execution pipeline applies it to the order, updates the Cache, and publishes it on the MessageBus. It... - [OrderFillVoided](https://nautilustrader.io/docs/md/latest/concepts/events/order_fill_voided.md): OrderFillVoided records that all or part of a previously reported fill no longer has economic effect. The ExecutionEngine applies every successful... - [OrderFilled](https://nautilustrader.io/docs/md/latest/concepts/events/order_filled.md): OrderFilled records a partial or full execution against an order. The ExecutionEngine applies it to the order, updates the Cache, and publishes it on the... - [OrderInitialized](https://nautilustrader.io/docs/md/latest/concepts/events/order_initialized.md): OrderInitialized is the seed event for a new order. It carries enough information to send the order over the wire and reconstruct it with the same... - [OrderModifyRejected](https://nautilustrader.io/docs/md/latest/concepts/events/order_modify_rejected.md): OrderModifyRejected records that a ModifyOrder command was rejected. The ExecutionEngine applies it to the order, updates the Cache, and publishes it on the... - [OrderPendingCancel](https://nautilustrader.io/docs/md/latest/concepts/events/order_pending_cancel.md): OrderPendingCancel represents a CancelOrder command having been sent to the trading venue. The ExecutionEngine applies it to the order, updates the Cache... - [OrderPendingUpdate](https://nautilustrader.io/docs/md/latest/concepts/events/order_pending_update.md): OrderPendingUpdate represents a ModifyOrder command having been sent to the trading venue. The ExecutionEngine applies it to the order, updates the Cache... - [OrderRejected](https://nautilustrader.io/docs/md/latest/concepts/events/order_rejected.md): OrderRejected records an order reaching the terminal REJECTED state. The ExecutionEngine applies it to the order, updates the Cache, and publishes it on the... - [OrderReleased](https://nautilustrader.io/docs/md/latest/concepts/events/order_released.md): OrderReleased records that the OrderEmulator has released an order after its trigger condition was met. The emulator applies the event to the order, updates... - [OrderSubmitted](https://nautilustrader.io/docs/md/latest/concepts/events/order_submitted.md): OrderSubmitted represents an order having been submitted by the system to the trading venue. The ExecutionEngine applies it to the order, updates the Cache... - [OrderTriggered](https://nautilustrader.io/docs/md/latest/concepts/events/order_triggered.md): OrderTriggered records that a limit-style conditional order has triggered. The execution pipeline applies it to the order, updates the Cache, and publishes... - [OrderUpdated](https://nautilustrader.io/docs/md/latest/concepts/events/order_updated.md): OrderUpdated records a change to an order's quantity, price, trigger price, or calculated protection price. The execution pipeline applies it to the order... - [PositionChanged](https://nautilustrader.io/docs/md/latest/concepts/events/position_changed.md): PositionChanged records an update that leaves a position open. The ExecutionEngine emits it when a fill changes an open position without closing it, or when... - [PositionClosed](https://nautilustrader.io/docs/md/latest/concepts/events/position_closed.md): PositionClosed records the final snapshot of a position. The ExecutionEngine emits it when a fill flattens the position or a fill correction leaves the... - [PositionOpened](https://nautilustrader.io/docs/md/latest/concepts/events/position_opened.md): PositionOpened records the opening snapshot of a new position. The ExecutionEngine emits it when a fill creates the position (see From fill to position).... - [Execution Algorithms](https://nautilustrader.io/docs/md/latest/concepts/execution/algorithms.md): An ExecutionAlgorithm receives primary orders selected by exec_algorithm_id and can split them into smaller spawned orders. NautilusTrader supports custom... - [Execution](https://nautilustrader.io/docs/md/latest/concepts/execution/index.md): NautilusTrader coordinates order submission, risk checks, venue execution, reconciliation, and position updates across multiple strategies and venues. This... - [Execution Policies](https://nautilustrader.io/docs/md/latest/concepts/execution/policies.md): NautilusTrader coordinates local state with trading venues across a distributed boundary. This page defines the policies that govern order commands, order... - [Execution Reconciliation](https://nautilustrader.io/docs/md/latest/concepts/execution/reconciliation.md): Execution reconciliation aligns the venue's actual order and position state with the system's internal event-sourced state. Use this guide to understand... - [Betting Instrument](https://nautilustrader.io/docs/md/latest/concepts/instruments/betting_instrument.md): BettingInstrument represents one selection in a sports or gaming market. It carries event, competition, market, and selection metadata so Nautilus can treat... - [Binary Option](https://nautilustrader.io/docs/md/latest/concepts/instruments/binary_option.md): BinaryOption represents a binary outcome instrument that settles to a fixed payoff based on whether a condition is true. It can model prediction markets... - [CFD](https://nautilustrader.io/docs/md/latest/concepts/instruments/cfd.md): Cfd represents a contract for difference that tracks an underlying asset without transferring ownership of the underlying. The venue defines the quote... - [Commodity](https://nautilustrader.io/docs/md/latest/concepts/instruments/commodity.md): Commodity represents a spot commodity market such as gold, silver, oil, or another physical asset quoted in a currency. It models a spot market, not a dated... - [Crypto Future](https://nautilustrader.io/docs/md/latest/concepts/instruments/crypto_future.md): CryptoFuture represents a dated crypto futures contract. It tracks a crypto underlying, quotes in a quote currency, settles in a settlement currency, and... - [Crypto Futures Spread](https://nautilustrader.io/docs/md/latest/concepts/instruments/crypto_futures_spread.md): CryptoFuturesSpread represents an exchange-defined spread strategy over crypto futures. The venue publishes the strategy as a single instrument with its own... - [Crypto Option](https://nautilustrader.io/docs/md/latest/concepts/instruments/crypto_option.md): CryptoOption represents a put or call option on a crypto underlying. It defines the option kind, strike price, activation time, expiration time, quote... - [Crypto Option Spread](https://nautilustrader.io/docs/md/latest/concepts/instruments/crypto_option_spread.md): CryptoOptionSpread represents an exchange-defined strategy over crypto options. The venue publishes the strategy as one instrument with its own symbol... - [Crypto Perpetual](https://nautilustrader.io/docs/md/latest/concepts/instruments/crypto_perpetual.md): CryptoPerpetual represents a crypto perpetual futures contract, also known as a perpetual swap. It has no expiry, tracks a crypto base asset, and settles in... - [Currency Pair](https://nautilustrader.io/docs/md/latest/concepts/instruments/currency_pair.md): CurrencyPair represents a spot or cash market quoted as BASE/QUOTE. The base currency is the asset being bought or sold, and the quote currency prices one... - [Equity](https://nautilustrader.io/docs/md/latest/concepts/instruments/equity.md): Equity represents a listed share, ETF, or similar cash-market security. Nautilus uses this type for instruments that trade in whole units, quote in one... - [Futures Contract](https://nautilustrader.io/docs/md/latest/concepts/instruments/futures_contract.md): FuturesContract represents a dated, exchange-traded futures contract with a defined underlying, activation time, expiration time, currency, multiplier, and... - [Futures Spread](https://nautilustrader.io/docs/md/latest/concepts/instruments/futures_spread.md): FuturesSpread represents an exchange-defined futures strategy with more than one leg, such as a calendar spread or inter-commodity spread. The venue defines... - [Instruments](https://nautilustrader.io/docs/md/latest/concepts/instruments/index.md): An instrument represents the specification for a tradable asset, contract, or local synthetic market. Market data, orders, positions, accounting, portfolio... - [Index Instrument](https://nautilustrader.io/docs/md/latest/concepts/instruments/index_instrument.md): IndexInstrument represents a reference index such as an equity index, volatility index, or benchmark price series. It carries precision and increment... - [Option Contract](https://nautilustrader.io/docs/md/latest/concepts/instruments/option_contract.md): OptionContract represents a listed put or call option on a non-crypto underlying. It defines the option kind, strike price, activation time, expiration... - [Option Spread](https://nautilustrader.io/docs/md/latest/concepts/instruments/option_spread.md): OptionSpread represents an exchange-defined options strategy with more than one leg. The venue publishes the strategy as a single instrument with its own... - [Perpetual Contract](https://nautilustrader.io/docs/md/latest/concepts/instruments/perpetual_contract.md): PerpetualContract represents a generic perpetual futures contract across asset classes. Use it when a venue exposes a perpetual swap that is not... - [Synthetic Instrument](https://nautilustrader.io/docs/md/latest/concepts/instruments/synthetic_instrument.md): SyntheticInstrument represents a local instrument whose price comes from a formula over other instruments. It is useful for spreads, baskets, ratios, and... - [Tokenized Asset](https://nautilustrader.io/docs/md/latest/concepts/instruments/tokenized_asset.md): TokenizedAsset represents a spot-like token that tracks another asset on a crypto venue. Use it for tokenized equities, tokenized funds, or similar... - [Advanced orders](https://nautilustrader.io/docs/md/latest/concepts/orders/advanced.md): Order lists group related orders, while contingency metadata describes how fills, cancellations, or updates should affect linked orders. The component that... - [Emulated orders](https://nautilustrader.io/docs/md/latest/concepts/orders/emulated.md): Emulation lets you use order types even when your trading venue does not natively support them. - [Orders](https://nautilustrader.io/docs/md/latest/concepts/orders/index.md): NautilusTrader provides a common model for order types, execution instructions, and contingency relationships across trading venues. - [Limit](https://nautilustrader.io/docs/md/latest/concepts/orders/limit.md): FIX OrdType <40>=2 - [Limit-If-Touched](https://nautilustrader.io/docs/md/latest/concepts/orders/limit_if_touched.md): FIX OrdType <40> no dedicated value (commonly 4 Stop Limit with a favorable trigger) - [Market](https://nautilustrader.io/docs/md/latest/concepts/orders/market.md): FIX OrdType <40>=1 - [Market-If-Touched](https://nautilustrader.io/docs/md/latest/concepts/orders/market_if_touched.md): FIX OrdType <40>=J (Market If Touched) - [Market-To-Limit](https://nautilustrader.io/docs/md/latest/concepts/orders/market_to_limit.md): FIX OrdType <40>=K (Market With Left Over as Limit) - [Stop-Limit](https://nautilustrader.io/docs/md/latest/concepts/orders/stop_limit.md): FIX OrdType <40>=4 (Stop Limit) - [Stop-Market](https://nautilustrader.io/docs/md/latest/concepts/orders/stop_market.md): FIX OrdType <40>=3 (Stop) - [Trailing-Stop-Limit](https://nautilustrader.io/docs/md/latest/concepts/orders/trailing_stop_limit.md): FIX OrdType <40>=4 (Stop Limit) + trailing peg - [Trailing-Stop-Market](https://nautilustrader.io/docs/md/latest/concepts/orders/trailing_stop_market.md): FIX OrdType <40>=3 (Stop) + trailing peg ## How-To - [Configure a Live Trading Node](https://nautilustrader.io/docs/md/latest/how_to/configure_live_trading.md): Set up a LiveNode for live market connectivity. For the node lifecycle, see Live trading. For command outcomes, see Execution policies. For state recovery... - [Data Catalog with Databento](https://nautilustrader.io/docs/md/latest/how_to/data_catalog_databento.md): Set up a Nautilus Parquet data catalog with market data from Databento. The catalog provides efficient storage and querying for backtests and research. - [Get Started with Lighter](https://nautilustrader.io/docs/md/latest/how_to/get_started_lighter.md): Lighter is available through the Rust engine. You can use it from a pure Rust project, or from Python through PyO3 bindings that expose the same Rust data... - [Loading External Data](https://nautilustrader.io/docs/md/latest/how_to/loading_external_data.md): Load CSV market data into the Parquet data catalog, then run a backtest with BacktestNode. This is a common workflow when you have historical data from an... - [Migrate a Parquet catalog](https://nautilustrader.io/docs/md/latest/how_to/migrate_parquet_catalog.md): Use nautilus catalog migrate-parquet to rewrite an existing Nautilus Parquet catalog into the current Arrow format. The command reads the source and writes... - [Run a Backtest (Rust)](https://nautilustrader.io/docs/md/latest/how_to/run_rust_backtest.md): Nautilus provides two Rust APIs for backtesting: BacktestEngine (low-level) and BacktestNode (high-level with catalog streaming). This guide covers both. - [Run Live Trading (Rust)](https://nautilustrader.io/docs/md/latest/how_to/run_rust_live_trading.md): The LiveNode connects to real venues and data sources through adapter clients. This guide walks through a complete live trading setup using OKX as an example. - [Stream Data Into a Parquet Catalog](https://nautilustrader.io/docs/md/latest/how_to/stream_parquet_catalog.md): Use the Parquet streaming writer to stage live or backtest records in Feather and promote them into queryable catalog files. Direct... - [Write an Actor (Rust)](https://nautilustrader.io/docs/md/latest/how_to/write_rust_actor.md): An actor receives market data, custom data/signals, and system events but does not manage orders. This guide walks through building a SpreadMonitor that... - [Write a Strategy (Rust)](https://nautilustrader.io/docs/md/latest/how_to/write_rust_strategy.md): A strategy extends an actor with order management. This guide walks through building a minimal strategy that subscribes to quotes and submits market orders.... ## Tutorials - [Book Imbalance Backtest (Betfair)](https://nautilustrader.io/docs/md/latest/tutorials/backtest_book_imbalance_betfair.md): This tutorial backtests a BookImbalanceActor on a Betfair MATCH_ODDS market. It loads a raw historical streaming .gz file, feeds it through the Rust... - [Backtest with FX Bar Data](https://nautilustrader.io/docs/md/latest/tutorials/backtest_fx_bars.md): Run an EMA cross strategy on USD/JPY 1-minute bid/ask bars with FX rollover interest and a probabilistic fill model. The data comes from the NautilusTrader... - [Backtest with Order Book Depth Data (Binance)](https://nautilustrader.io/docs/md/latest/tutorials/backtest_orderbook_binance.md): Replay Binance T_DEPTH order book deltas through BacktestNode and run an imbalance strategy that fires fill-or-kill (FOK) limit orders when one side of the... - [Backtest with Order Book Depth Data (Bybit)](https://nautilustrader.io/docs/md/latest/tutorials/backtest_orderbook_bybit.md): Replay Bybit ob500 order book deltas through BacktestNode and run the OrderBookImbalance strategy. Same shape as the Binance variant, different loader and... - [Delta-Neutral Options Strategy (Bybit)](https://nautilustrader.io/docs/md/latest/tutorials/delta_neutral_options_bybit.md): This tutorial runs a short OTM strangle on Bybit BTC options and delta-hedges with the BTCUSDT perpetual. The strategy selects call and put strikes at... - [Delta-Neutral Options Strategy (Derive)](https://nautilustrader.io/docs/md/latest/tutorials/delta_neutral_options_derive.md): This tutorial runs the shared DeltaNeutralVol strategy with the Derive adapter. The shipped example discovers ETH options, selects an out-of-the-money call... - [EMA cross](https://nautilustrader.io/docs/md/latest/tutorials/ema_cross.md): Define the reusable bar-based EMA cross strategy used by the FX bars tutorial. - [Mean Reversion with Proxy FX Data (AX Exchange)](https://nautilustrader.io/docs/md/latest/tutorials/fx_mean_reversion_ax.md): This tutorial backtests a Bollinger-band mean-reversion strategy on EURUSD-PERP at AX Exchange using TrueFX EUR/USD spot ticks as a proxy. - [Gold Perpetual Book Imbalance with Proxy Futures Data (AX Exchange)](https://nautilustrader.io/docs/md/latest/tutorials/gold_book_imbalance_ax.md): This tutorial backtests a top-of-book imbalance strategy on XAU-PERP at AX Exchange using Databento CME gold futures (GC.v.0) mbp-1 quotes as a proxy. - [On-Chain Grid Market Making with Short-Term Orders (dYdX)](https://nautilustrader.io/docs/md/latest/tutorials/grid_market_maker_dydx.md): This tutorial runs the shipped GridMarketMaker strategy on dYdX v4 through the Rust LiveNode. The strategy places symmetric limit orders around the mid... - [Hurst/VPIN Directional Strategy (Kraken Futures)](https://nautilustrader.io/docs/md/latest/tutorials/hurst_vpin_kraken.md): This tutorial backtests a directional strategy on PF_XBTUSD, the USD-margined Bitcoin perpetual on Kraken Futures. The strategy combines a Hurst-exponent... - [Tutorials](https://nautilustrader.io/docs/md/latest/tutorials/index.md): Step-by-step walkthroughs demonstrating specific features and workflows. - [Composite Market Making on Lighter RWA with Databento US Equities NVDA](https://nautilustrader.io/docs/md/latest/tutorials/lighter_rwa_composite_mm.md): This tutorial runs the shipped [CompositeMarketMaker][composite-market-maker] strategy on Lighter's NVDA-PERP.LIGHTER RWA market using Databento NVDA.EQUS... - [Options Data and Greeks (Bybit)](https://nautilustrader.io/docs/md/latest/tutorials/options_data_bybit.md): This tutorial connects to Bybit's live options market and consumes Greeks and option chain data through two DataActor examples. It covers instrument... - [Order Book Data](https://nautilustrader.io/docs/md/latest/tutorials/orderbook_data.md): Load Bybit order book archives and convert normalized venue rows into NautilusTrader order book deltas for the Binance and Bybit backtest tutorials. - [Order Book Imbalance](https://nautilustrader.io/docs/md/latest/tutorials/orderbook_imbalance.md): Define the reusable order book imbalance strategy used by the Binance and Bybit order book backtest tutorials. ## Integrations - [AX Exchange](https://nautilustrader.io/docs/md/latest/integrations/architect_ax.md): AX Exchange is a centralized and regulated derivatives exchange for traditional underlying asset classes. Operated by Architect Bermuda Ltd. and licensed by... - [Betfair](https://nautilustrader.io/docs/md/latest/integrations/betfair.md): Founded in 2000, Betfair operates the world's largest online betting exchange. This integration supports instrument discovery, live market data, account... - [Binance](https://nautilustrader.io/docs/md/latest/integrations/binance.md): Founded in 2017, Binance is one of the largest cryptocurrency exchanges in terms of daily trading volume, and open interest of crypto assets and crypto... - [Blockchain](https://nautilustrader.io/docs/md/latest/integrations/blockchain.md): The blockchain adapter ingests DeFi data from EVM chains and exposes it through the NautilusTrader data model. It also includes an execution client for... - [Bybit](https://nautilustrader.io/docs/md/latest/integrations/bybit.md): Founded in 2018, Bybit is one of the largest cryptocurrency exchanges in terms of daily trading volume and open interest of crypto assets and crypto... - [Coinbase](https://nautilustrader.io/docs/md/latest/integrations/coinbase.md): Founded in 2012, Coinbase is one of the largest US-regulated cryptocurrency exchanges, offering trading across spot, perpetual swaps, and dated futures via... - [Databento](https://nautilustrader.io/docs/md/latest/integrations/databento.md): NautilusTrader includes an adapter for the Databento API and for data in Databento Binary Encoding (DBN). Databento is a market data provider only, so the... - [Deribit](https://nautilustrader.io/docs/md/latest/integrations/deribit.md): Founded in 2016, Deribit is a cryptocurrency derivatives exchange for options, futures, perpetuals, spot, and combo instruments. It is one of the largest... - [Derive](https://nautilustrader.io/docs/md/latest/integrations/derive.md): Derive (formerly Lyra) is a decentralized derivatives venue offering European-style options and cash-settled perpetual swaps, and one of the largest... - [dYdX](https://nautilustrader.io/docs/md/latest/integrations/dydx.md): dYdX is one of the largest decentralized cryptocurrency exchanges for crypto derivative products. This integration supports live market data ingestion and... - [Hyperliquid](https://nautilustrader.io/docs/md/latest/integrations/hyperliquid.md): Hyperliquid is a decentralized perpetual futures and spot exchange built on the Hyperliquid L1, a purpose-built blockchain optimized for trading. HyperCore... - [Integrations](https://nautilustrader.io/docs/md/latest/integrations/index.md): NautilusTrader uses modular adapters to connect to trading venues and data providers, translating raw APIs into a unified interface and normalized domain model. - [Interactive Brokers](https://nautilustrader.io/docs/md/latest/integrations/interactive_brokers.md): Interactive Brokers (IB) provides market access across equities, options, futures, currencies, bonds, funds, and other asset classes. The NautilusTrader... - [Kraken](https://nautilustrader.io/docs/md/latest/integrations/kraken.md): Kraken offers spot and derivatives trading across a wide range of digital assets. This integration connects to Kraken Pro and supports live market data and... - [Lighter](https://nautilustrader.io/docs/md/latest/integrations/lighter.md): Lighter is a decentralized central-limit-order-book exchange for spot and perpetual futures. The venue settles through an Ethereum zero-knowledge rollup... - [OKX](https://nautilustrader.io/docs/md/latest/integrations/okx.md): Founded in 2017, OKX is a cryptocurrency exchange that offers spot, margin, perpetual swap, futures, options, spread, and event contract trading. This... - [Polymarket](https://nautilustrader.io/docs/md/latest/integrations/polymarket.md): Founded in 2020, Polymarket is a decentralized prediction market platform that enables traders to speculate on event outcomes by buying and selling outcome... - [Tardis](https://nautilustrader.io/docs/md/latest/integrations/tardis.md): Tardis provides granular cryptocurrency market data, including tick-by-tick order book snapshots and updates, trades, open interest, funding rates, option... ## Developer Guide - [Adapters](https://nautilustrader.io/docs/md/latest/developer_guide/adapters.md): Use this guide to build or extend a Rust-native adapter for NautilusTrader. Adapters connect the platform to venues and data providers, preserve venue... - [Benchmarking](https://nautilustrader.io/docs/md/latest/developer_guide/benchmarking.md): Use this guide to write, run, and profile NautilusTrader benchmarks. It contains benchmark layout, examples, local commands, and the measurement procedure... - [Callback Dispatch Contract](https://nautilustrader.io/docs/md/latest/developer_guide/callback_dispatch.md): This page defines the ownership, ordering, and progress requirements for queued actor and strategy callbacks. The design principles explain the policy. - [Coding Standards](https://nautilustrader.io/docs/md/latest/developer_guide/coding_standards.md): The current codebase can be used as a guide for formatting conventions. Additional guidelines are provided below. - [Design Principles](https://nautilustrader.io/docs/md/latest/developer_guide/design_principles.md): This page defines the principles, policies, and trade-offs that guide NautilusTrader design. Architecture describes the components and runtime structure.... - [Docs Style](https://nautilustrader.io/docs/md/latest/developer_guide/docs.md): This guide outlines the style conventions and best practices for writing documentation for NautilusTrader. - [Environment Setup](https://nautilustrader.io/docs/md/latest/developer_guide/environment_setup.md): Use an editor with current Rust and Python language support, such as PyCharm or Visual Studio Code. - [FFI Memory Contract](https://nautilustrader.io/docs/md/latest/developer_guide/ffi.md): NautilusTrader exposes a C foreign function interface (FFI) only from nautilus-core and nautilus-model. Both crates gate the interface behind their ffi... - [Markdown Style](https://nautilustrader.io/docs/md/latest/developer_guide/markdown_style.md): Standard revision: 1 - [Plugins](https://nautilustrader.io/docs/md/latest/developer_guide/plugins.md): The nautilus-plugin crate defines the artifact contract for NautilusTrader plug-ins: an independently compiled Rust cdylib that identifies itself with a... - [Python](https://nautilustrader.io/docs/md/latest/developer_guide/python.md): The Python programming language is used for the majority of user-facing code in NautilusTrader. Python provides a rich ecosystem of libraries and... - [Python Adapter Interface](https://nautilustrader.io/docs/md/latest/developer_guide/python_adapters.md): Use this guide to implement a custom live adapter in a separate Python package, optionally with its own Rust/PyO3 extension. It covers the client interface... - [Releases](https://nautilustrader.io/docs/md/latest/developer_guide/releases.md): This guide covers the release process and the standards for writing release notes. - [Runtime Conformance Contract](https://nautilustrader.io/docs/md/latest/developer_guide/runtime_conformance.md): Use this reference to locate implementation boundaries and representative checks for selected design principles. Each section records its source baseline... - [Rust](https://nautilustrader.io/docs/md/latest/developer_guide/rust.md): This page defines NautilusTrader conventions for Rust source, Cargo manifests, PyO3 bindings, and tests. - [Security Architecture](https://nautilustrader.io/docs/md/latest/developer_guide/security.md): This page describes the security model for the NautilusTrader release pipeline. It explains how release artifacts are built, published, attested, and verified. - [Shell Scripts](https://nautilustrader.io/docs/md/latest/developer_guide/shell.md): This page defines when to create a shell script and how to name, write, invoke, and test it. Bash is the default. Use POSIX sh only when a supported caller... - [Data Testing Spec](https://nautilustrader.io/docs/md/latest/developer_guide/spec_data_testing.md): This section defines a rigorous test matrix for validating adapter data functionality using the Rust DataTester actor. Python exposes it as a built-in actor... - [Execution Testing Spec](https://nautilustrader.io/docs/md/latest/developer_guide/spec_exec_testing.md): This section defines a rigorous test matrix for validating adapter execution functionality using the Rust ExecTester strategy. Python exposes it as a... - [Test Datasets](https://nautilustrader.io/docs/md/latest/developer_guide/test_datasets.md): Target standards for curating, storing, and consuming external datasets used as test fixtures. New datasets should follow these standards. Existing datasets... - [Testing](https://nautilustrader.io/docs/md/latest/developer_guide/testing.md): Our automated tests serve as executable specifications for the trading platform. A healthy suite documents intended behavior, gives contributors confidence... ## Nightly Nightly versions of most pages are available by replacing /latest/ with /nightly/ in the URL, starting from https://nautilustrader.io/docs/nightly/. Some pages exist in only one version. Nightly code examples can use APIs that the latest release lacks. To run them, install a development wheel as shown in [Installation](https://nautilustrader.io/docs/md/nightly/getting_started/installation.md).