136 lines
2.9 KiB
Markdown
136 lines
2.9 KiB
Markdown
# 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
|
|
|