Files
foxhunt/services/backtesting_service/README.md
jgrusewski 6093eac7bf 🔧 Tonic 0.14 Upgrade: Auto-generated and build system changes
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>
2025-10-03 07:34:26 +02:00

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).