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