Wave 64-65 cleanup: Proto regeneration and build system updates from Tonic 0.12→0.14 upgrade Files updated: - Cargo.lock: Dependency resolution for Tonic 0.14.2 - All build.rs: Updated for tonic-prost-build - Proto files: Regenerated with tonic-prost 0.14 - Examples/tests: Updated for new gRPC API 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
50 lines
2.1 KiB
Markdown
50 lines
2.1 KiB
Markdown
# Backtesting Service
|
|
|
|
## Overview
|
|
|
|
The `backtesting_service` offers an independent and isolated environment for rigorously testing and validating trading strategies against historical market data. It provides a robust platform for simulating trading performance, analyzing strategy efficacy, and generating comprehensive performance reports before live deployment.
|
|
|
|
## Features
|
|
|
|
* **Independent Backtesting Service**: Operates autonomously, allowing for parallel and isolated strategy evaluations.
|
|
* **gRPC API for Backtest Execution**: Exposes a clear API for submitting and managing backtesting jobs.
|
|
* **Strategy Testing and Validation**: Enables comprehensive testing of various trading strategies under different market conditions.
|
|
* **Performance Reporting**: Generates detailed reports including metrics like P&L, Sharpe ratio, drawdown, and win rate.
|
|
* **Data Replay Engine**: Accurately replays historical market data, simulating real-world order book dynamics and trade execution.
|
|
* **Results Persistence**: Stores backtesting results and reports for historical analysis and comparison.
|
|
|
|
## gRPC API
|
|
|
|
The `backtesting_service` exposes a gRPC API for initiating and retrieving backtest results. Key endpoints include:
|
|
- `RunBacktest` - Submit backtest configuration and strategy
|
|
- `GetBacktestResults` - Retrieve results for completed backtests
|
|
- `ListAvailableStrategies` - List registered strategies
|
|
- `GetBacktestReport` - Get detailed performance report
|
|
|
|
## Running the service
|
|
|
|
To run the `backtesting_service` binary:
|
|
|
|
```bash
|
|
cargo run --bin backtesting_service
|
|
```
|
|
|
|
## Data Requirements
|
|
|
|
The service requires historical market data in Parquet format:
|
|
- Data should be stored in the configured data directory
|
|
- Supports tick data, order book snapshots, and OHLCV candles
|
|
- Data must include instrument, timestamp, and price/quantity fields
|
|
|
|
## Testing
|
|
|
|
To run the tests for the `backtesting_service` crate:
|
|
|
|
```bash
|
|
cargo test --package backtesting_service
|
|
```
|
|
|
|
## Documentation
|
|
|
|
Comprehensive API documentation is available at [docs.rs/backtesting_service](https://docs.rs/backtesting_service).
|