2.9 KiB
2.9 KiB
Backtesting Engine Architecture
This document describes the backtesting engine design.
Backtesting Components
Backtesting Engine
├──► Data Provider
│ │
│ └──► Historical Data Loading
│
├──► Strategy Execution
│ │
│ ├──► Data Replay
│ ├──► Signal Generation
│ └──► Order Simulation
│
├──► Realism Models
│ │
│ ├──► Slippage Model
│ ├──► Fee Model
│ └──► Order Book Simulation
│
└──► Metrics Calculation
│
├──► Performance Metrics
└──► Risk Metrics
Data Replay
Historical data is replayed chronologically:
Historical Data (Time Series)
│
▼
Time-based Iteration
│
├──► For each timestamp:
│ │
│ ├──► Update market data
│ ├──► Notify strategies
│ ├──► Process signals
│ └──► Execute orders
│
└──► Continue until end date
Order Simulation
Simulated order execution:
Order Request
│
▼
Order Type Check
│
├──► Market Order
│ │
│ └──► Execute at current price + slippage
│
└──► Limit Order
│
└──► Wait for price to reach limit
│
└──► Execute when filled
Slippage Modeling
Realistic slippage simulation:
Market Order
│
▼
Current Price
│
├──► Buy Order: Price + Slippage
└──► Sell Order: Price - Slippage
│
└──► Add Market Impact (for large orders)
Fee Modeling
Exchange fee calculation:
Order Execution
│
▼
Order Type Check
│
├──► Maker Order (Limit)
│ │
│ └──► Apply Maker Fee
│
└──► Taker Order (Market)
│
└──► Apply Taker Fee
Performance Metrics
Calculated metrics:
- Total Return: (Final Capital - Initial Capital) / Initial Capital
- Sharpe Ratio: (Return - Risk-free Rate) / Volatility
- Sortino Ratio: (Return - Risk-free Rate) / Downside Deviation
- Max Drawdown: Largest peak-to-trough decline
- Win Rate: Winning Trades / Total Trades
- Profit Factor: Gross Profit / Gross Loss
Parameter Optimization
Optimization methods:
- Grid Search: Test all parameter combinations
- Genetic Algorithm: Evolutionary optimization
- Bayesian Optimization: Efficient parameter search
Backtest Results
Stored results:
- Performance metrics
- Trade history
- Equity curve
- Drawdown chart
- Parameter values