Overview
TheBacktestConfig 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.
- 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.
- 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)
conservative
Configuration for strategy validation with pessimistic assumptions.
- 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%)
LatencyConfig
Defines latency simulation parameters.Fields
Example:
FeeConfig
Defines trading fee structure (typically for CME futures).Fields
Methods
calculate_fee
Calculates total fee for a trade.
quantity: Number of contractsis_maker: Whether the trade provides liquidity (maker) or removes it (taker)
RiskConfig
Defines risk management rules and limits.Fields
Example:
ExecutionConfig
Defines execution simulation realism parameters.Fields
Details:
fill_probability_decay: Lower values make fills less likely for orders behind in queuesimulate_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
- BacktestEngine - Using the engine
- LatencyConfig - Latency simulation details
- RiskConfig - Risk management details