Concepts
These guides explain the core components, architecture, and design of NautilusTrader.
Foundations
Overview
Main features and intended use cases for the platform.
Architecture
The principles, structures, and designs that underpin the platform.
Domain model
Instruments
Instrument definitions for tradable assets and contracts.
Continuous Futures
Roll-adjusted futures series, transition tables, adjustment modes, and request or subscription flow.
Synthetics
User-defined instruments whose prices are computed by evaluating a numeric expression over component instrument prices.
Value Types
Immutable numeric types (Price, Quantity, Money), their arithmetic behavior, precision handling, and type-specific constraints.
Options
Option instruments, Greeks streaming, chain subscriptions, and snapshot aggregation.
Greeks
Venue-provided real-time Greeks and local Black-Scholes computation with shock scenarios and portfolio aggregation.
Data
Data
Built-in data types for the trading domain, and how to work with custom data.
Custom Data
User-defined data types with registration, persistence, Arrow encoding, and runtime routing.
Order Book
High-performance order book, own order tracking, filtered views for net liquidity, and binary market support.
Events
Order events, position events, account events, and time events. Covers handler dispatch, causal chains from fills to positions, and tracing orders to positions.
Event Sourcing
Durable event store capture, replay, run manifests, and verification for state-affecting engine history.
Execution and portfolio
Execution
Trade execution and order management across multiple strategies and venues, including components and the flow of execution messages.
Orders
Available order types, supported execution instructions, advanced order types, and emulated orders.
Positions
Position lifecycle, aggregation from order fills, PnL calculations, and position snapshotting for netting OMS configurations.
Accounting
Balances, margin, and PnL tracking across cash, margin, and betting accounts, with a query API for strategies and conventions for adapter authors.
Portfolio
Tracks all positions across strategies and instruments, providing a unified view of holdings, risk exposure, and performance.
Reports
Execution reports, portfolio analysis, PnL accounting, and backtest post-run analysis.
Components and runtime
Actors
The Actor component for interacting with the trading system.
Strategies
How to implement trading strategies using the Strategy component.
Cache
The Cache is the central in-memory store for all trading-related data.
Message Bus
Decoupled messaging between components, supporting point-to-point, publish/subscribe, and request/response patterns.
Configuration
Typed configuration structs for data clients, execution clients, engines, strategies, and trading nodes.
Logging
High-performance logging for both backtesting and live trading, implemented in Rust.
Running systems
Backtesting
Running simulated trading on historical data using a specific system implementation.
Live Trading
Deploying backtested strategies in real-time without code changes, and the key differences between backtesting and live trading.
Visualization
Interactive tearsheets for analyzing backtest results, including charts, themes, customization options, and custom visualizations.
Adapters
Requirements and best practices for developing integration adapters for data providers and trading venues.
Plugins
Independently compiled Rust cdylibs that extend a live node with custom actors, strategies, and data types over a stable C ABI.
Rust
Writing actors, strategies, and running backtests and live trading in pure Rust using the crates implementation directly.
Deterministic Simulation Testing (DST)
The determinism contract for seed-replayable execution, the source-level seams that implement it, the pre-commit hook that enforces it, and the known scope boundaries.
If there are discrepancies between these guides and the API reference, the API reference is correct.
Backtest (High-Level API)
Use BacktestNode for config-driven backtesting with the Parquet data catalog. This is the recommended path for production workflows because the strategies...
Overview
NautilusTrader is an open-source, production-grade, Rust-native engine for multi-asset, multi-venue trading systems.