Files
crypto_trader/docs/architecture/backtesting.md

136 lines
2.9 KiB
Markdown
Raw Normal View History

# 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