Nautilus Trader - Tutorials
NautilusTrader’s tutorials are split across the Getting Started section (quickstart + the two foundational backtest walkthroughs) and the dedicated Tutorials section (strategy patterns, options, Rust). They progress from a five-minute synthetic-data backtest through real-data catalog workflows, into venue-specific strategy patterns (FX, gold, BitMEX, dYdX), options Greeks streaming and delta-hedging, and finally Rust-only backtests for power users. Several “Data Workflows” entries link directly to script examples in the GitHub repo rather than rendered docs pages - they are listed here for completeness.
Tutorial: Quickstart
What you build: An EMA-crossover strategy run as a backtest against synthetic data using the high-level config-driven API. Concepts covered: Strategy subclassing, event handlers, indicator registration, synthetic data generation, BacktestEngine config, performance reporting. Time estimate: Under 5 minutes Difficulty: beginner URL: https://nautilustrader.io/docs/latest/getting_started/quickstart Worth doing for Cortana MK3: yes - fastest “is Nautilus shaped like what we need” check; install + run end-to-end before committing.
Tutorial: Backtest (Low-Level API)
What you build: An EMA-cross strategy paired with a TWAP execution algorithm, backtested against historical Binance Spot data using the BacktestEngine directly. Concepts covered: CSV data loading, engine configuration, venue setup, strategy parameterization, execution algorithms (TWAP), iterative backtests via engine reset. Time estimate: not stated Difficulty: intermediate URL: https://nautilustrader.io/docs/latest/getting_started/backtest_low_level Worth doing for Cortana MK3: yes - Cortana needs direct engine wiring (custom signals, custom contract picks, custom execution); this is the layer we’ll actually build against.
Tutorial: Backtest (High-Level API)
What you build: Config-driven backtest of an EMA cross on FX quote ticks loaded into a ParquetDataCatalog, run on a simulated FX ECN venue. Concepts covered: ParquetDataCatalog ingestion, config objects, venue config, simulated FX ECN, “production-recommended” pattern. Time estimate: not stated Difficulty: beginner / intermediate URL: https://nautilustrader.io/docs/latest/getting_started/backtest_high_level Worth doing for Cortana MK3: yes - the catalog pattern is what we’d use to replay historical 0DTE / underlying tick data; learn before designing the data pipeline.
Tutorial: Backtest with FX Bar Data
What you build: EMA-cross strategy on FX bars with rollover simulation. Concepts covered: FX bar data ingestion, rollover handling, EMA cross logic on bars, simulated FX venue. Time estimate: not stated Difficulty: beginner / intermediate URL: https://github.com/nautechsystems/nautilus_trader/blob/develop/docs/tutorials/backtest_fx_bars.py Worth doing for Cortana MK3: maybe - relevant if we ever backtest the SPX/SPY underlying as bars rather than ticks; not the shape of an options engine.
Tutorial: Backtest with Order Book Depth (Binance)
What you build: Order book imbalance strategy backtested on Binance L2 depth data. Concepts covered: L2 order book depth ingestion, imbalance calculation, Binance venue mechanics. Time estimate: not stated Difficulty: intermediate URL: https://github.com/nautechsystems/nautilus_trader/blob/develop/docs/tutorials/backtest_orderbook_binance.py Worth doing for Cortana MK3: no - crypto spot mechanics, not options; imbalance concept already understood.
Tutorial: Backtest with Order Book Depth (Bybit)
What you build: Order book imbalance strategy backtested on Bybit L2 depth data. Concepts covered: L2 order book depth ingestion, imbalance calculation, Bybit venue mechanics. Time estimate: not stated Difficulty: intermediate URL: https://github.com/nautechsystems/nautilus_trader/blob/develop/docs/tutorials/backtest_orderbook_bybit.py Worth doing for Cortana MK3: no - same as Binance variant; venue-flavor exercise.
Tutorial: Loading External Data
What you build: A pipeline that imports a user CSV/external dataset into the ParquetDataCatalog so it can be replayed by the backtest engine. Concepts covered: ParquetDataCatalog, custom data adapters, schema mapping, instrument registration. Time estimate: not stated Difficulty: intermediate URL: https://github.com/nautechsystems/nautilus_trader/blob/develop/docs/how_to/loading_external_data.py Worth doing for Cortana MK3: yes - Cortana’s UW + IBKR ticks + scoring_events are all “external data” from Nautilus’s perspective; we’ll need this pattern to bring our existing data into a Nautilus replay.
Tutorial: Data Catalog with Databento
What you build: A ParquetDataCatalog populated from Databento schemas (MBO/MBP/CMBP/etc.) ready to feed the backtest engine. Concepts covered: Databento schemas, catalog setup, vendor-specific ingest, instrument resolution. Time estimate: not stated Difficulty: intermediate URL: https://github.com/nautechsystems/nautilus_trader/blob/develop/docs/how_to/data_catalog_databento.py Worth doing for Cortana MK3: maybe - only if we adopt Databento as a tick provider for SPX/SPY; otherwise skip.
Tutorial: Mean Reversion (AX Exchange)
What you build: A Bollinger-Band + RSI mean-reversion strategy on EURUSD-PERP at AX Exchange, backtested using TrueFX spot ticks as a proxy. Concepts covered: Bollinger Bands, RSI, signal combination, proxy-data methodology, position management with conflicting signals. Time estimate: not stated Difficulty: intermediate URL: https://nautilustrader.io/docs/latest/tutorials/fx_mean_reversion_ax/ Worth doing for Cortana MK3: no - strategy logic is FX/perp mean-revert, not options; useful only as a code-shape reference.
Tutorial: Gold Perpetual Book Imbalance (AX Exchange)
What you build: A top-of-book imbalance strategy on XAU-PERP at AX Exchange, using CME gold futures quotes as proxy data. Concepts covered: Order book imbalance signals, L1 quote tick processing, fill-or-kill orders, perpetual contract config, proxy data. Time estimate: not stated Difficulty: intermediate / advanced URL: https://nautilustrader.io/docs/latest/tutorials/gold_book_imbalance_ax/ Worth doing for Cortana MK3: no - instrument is wrong (gold perp, not options); imbalance concept already in our scoring engine.
Tutorial: Grid Market Making (BitMEX)
What you build: A backtest + live Rust deployment of a grid market-maker on BitMEX XBTUSD inverse perpetual, with deadman’s-switch protection. Concepts covered: Grid MM mechanics, server-side cancel-all timer, inverse-perp accounting, order reconciliation, position skewing, requote thresholds. Time estimate: not stated Difficulty: advanced URL: https://nautilustrader.io/docs/latest/tutorials/grid_market_maker_bitmex/ Worth doing for Cortana MK3: no - Cortana is directional options, not market making.
Tutorial: On-Chain Grid Market Making (dYdX)
What you build: A live Rust LiveNode running a grid market-maker on dYdX v4 perpetuals, using short-term orders that auto-expire. Concepts covered: Avellaneda-Stoikov-flavored inventory skew, dYdX short-term order semantics, block-time-based order expiry, requote thresholds. Time estimate: not stated Difficulty: advanced URL: https://nautilustrader.io/docs/latest/tutorials/grid_market_maker_dydx/ Worth doing for Cortana MK3: no - DeFi/perp MM, off-thesis.
Tutorial: Options Data and Greeks (Bybit)
What you build: Two Rust v2 examples - a per-instrument Greeks tester and an option-chain aggregator - streaming live Bybit options data. Concepts covered: DataActor pattern (struct + macro + trait), instrument discovery, Greeks subscriptions (delta/gamma/vega/theta/rho), OptionSeriesId, StrikeRange config, LiveNode for data-only flows. Time estimate: not stated Difficulty: advanced URL: https://nautilustrader.io/docs/latest/tutorials/options_data_bybit/ Worth doing for Cortana MK3: maybe - closest thing to an options-shaped tutorial; useful as a reference for Greeks streaming patterns even though Cortana sources Greeks from UW, not the broker, and runs Python not Rust.
Tutorial: Delta-Neutral Options Strategy (Bybit)
What you build: A Rust v2 short-OTM-strangle on Bybit BTC options, delta-hedged via the BTCUSDT perpetual. Concepts covered: Strike selection by delta percentile, IV-based limit orders, portfolio delta tracking, rehedge triggers (Greeks updates + timer), session position hydration. Time estimate: not stated Difficulty: advanced URL: https://nautilustrader.io/docs/latest/tutorials/delta_neutral_options_bybit/ Worth doing for Cortana MK3: maybe - different thesis (short-vol vs Cortana’s directional buy-side), but it’s the only end-to-end live options strategy in the docs; worth scanning for portfolio-Greeks tracking patterns.
Tutorial: Book Imbalance Backtest (Betfair) - Rust
What you build: A Rust BookImbalanceActor backtest over gzip-compressed Betfair Exchange Streaming API archives. Concepts covered: Order book delta accumulation, imbalance metric ((bid-ask)/(bid+ask)), Rust DataActor implementation, sim venue config for betting markets, performance (~3M data points/sec in release builds). Time estimate: not stated Difficulty: advanced URL: https://nautilustrader.io/docs/latest/tutorials/backtest_book_imbalance_betfair/ Worth doing for Cortana MK3: no - Rust + sports betting; pure curiosity item.
Tutorial: Hurst/VPIN Directional Strategy (Kraken Futures) - Rust
What you build: A Rust backtest of a regime-filtered directional strategy on PF_XBTUSD Kraken Futures combining a Hurst-exponent regime filter with VPIN flow toxicity, on dollar bars from Tardis.dev. Concepts covered: Hurst exponent regime detection, VPIN (Volume-synchronized Probability of Informed Trading), dollar-bar aggregation, Tardis.dev ingest, regime-gated entries. Time estimate: not stated Difficulty: advanced URL: https://nautilustrader.io/docs/latest/tutorials/hurst_vpin_kraken/ Worth doing for Cortana MK3: maybe - Hurst-as-regime-filter and VPIN-as-flow-signal are conceptually adjacent to “is this a trend day vs chop day” detection we still owe; ideas, not code.
Recommended learning path for Cortana MK3 migration
A non-developer pairing with an AI assistant should walk these in order. Each step changes one variable at a time.
- Quickstart - prove install works and you can run a backtest end-to-end against synthetic data. Anchors the mental model before any complexity. (https://nautilustrader.io/docs/latest/getting_started/quickstart)
- Backtest (High-Level API) - first contact with
ParquetDataCatalogand config-driven runs on real FX tick data. This is the production shape of a Nautilus backtest. (https://nautilustrader.io/docs/latest/getting_started/backtest_high_level) - Loading External Data - replay Cortana’s own data (UW snapshots, IBKR ticks, scoring_events) by importing it into the catalog. Forces the schema-mapping conversation early, before any strategy code. (https://github.com/nautechsystems/nautilus_trader/blob/develop/docs/how_to/loading_external_data.py)
- Backtest (Low-Level API) - graduate to the
BacktestEnginedirectly so you can wire custom signals, custom contract selection, and custom execution algos. This is the layer Cortana MK3 actually lives at. (https://nautilustrader.io/docs/latest/getting_started/backtest_low_level) - Options Data and Greeks (Bybit) - read-only reference for how Nautilus models options instruments, option-chain aggregation, and Greeks streaming. Translate concepts to Cortana’s Python + UW-Greeks stack rather than copying Rust code. (https://nautilustrader.io/docs/latest/tutorials/options_data_bybit/)
See also
- nautilus-getting-started.md
- nautilus-how-to.md