Local changes: Updated model training, removed debug instrumentation, and configuration improvements
This commit is contained in:
135
docs/architecture/backtesting.md
Normal file
135
docs/architecture/backtesting.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user