Skip to main content

Overview

The BacktestConfig struct defines all configuration parameters for running a backtest, including initial capital, latency simulation, fee structure, risk management rules, execution realism, and output settings. Source: nano-backtest/src/config.rs

BacktestConfig

Fields

Constructors

default

Creates a balanced configuration suitable for most backtests.
Defaults:
  • Initial capital: $1,000,000
  • Latency: 100μs order, 50μs market data
  • CME standard fees
  • Conservative risk limits

aggressive_hft

Configuration optimized for high-frequency trading strategies.
Features:
  • Ultra-low latency: 50μs order, 10μs market data
  • Tight risk limits (max position: 50 contracts)
  • 4% max drawdown
  • High jitter variance (5μs)
Example:

conservative

Configuration for strategy validation with pessimistic assumptions.
Features:
  • Higher latency: 200μs order, 50μs market data
  • Increased fees (20% buffer)
  • Stricter risk limits (3% max drawdown)
  • More conservative fill probability (70% decay)
  • Partial fills more likely (40%)
Use case: Stress testing strategies under adverse conditions

LatencyConfig

Defines latency simulation parameters.

Fields

Example:
See LatencyConfig for detailed documentation.

FeeConfig

Defines trading fee structure (typically for CME futures).

Fields

Methods

calculate_fee

Calculates total fee for a trade.
Parameters:
  • quantity: Number of contracts
  • is_maker: Whether the trade provides liquidity (maker) or removes it (taker)
Returns: Total fee in dollars Example:

RiskConfig

Defines risk management rules and limits.

Fields

Example:
See RiskConfig for detailed documentation.

ExecutionConfig

Defines execution simulation realism parameters.

Fields

Details:
  • fill_probability_decay: Lower values make fills less likely for orders behind in queue
  • simulate_adverse_selection: When enabled, limit orders at BBO have higher chance of filling when price moves against them

OutputConfig

Defines logging and data recording settings.

Fields

Complete Example

See Also