Files
foxhunt/services/backtesting_service
jgrusewski a1cc91e735 🚀 Wave 125 Phase 3C: Deploy Agents 101-105 - TLS + Optional Services + Health Endpoints
Wave 1 (Agents 101-102): Infrastructure Setup
- Agent 101: TLS certificates generated and mounted (/tmp/foxhunt/certs/)
- Agent 102: ML service CUDA image built (14.4GB → 2.24GB optimized)

Wave 2 (Agents 103-105): Service Resilience
- Agent 103: Fixed ML Dockerfile multi-stage setup (NVIDIA entrypoint issue)
- Agent 104: Made API Gateway services optional (graceful degradation)
- Agent 105: Backtesting HTTP health endpoint (port 8083)

Service Status:
- Trading Service:  Up (healthy)
- Backtesting Service:  Up (healthy) - health fix working
- ML Training Service: ⚠️ Up (unhealthy) - needs health endpoint
- API Gateway: 📦 Ready to deploy with optional services

Changes:
- docker-compose.yml: TLS + model storage volume mounts
- services/api_gateway/src/main.rs: Optional backtesting/ML services
- services/backtesting_service/: HTTP health module + Dockerfile port 8080
- services/ml_training_service/: Dockerfile.cpu fallback option

Production Readiness: 91-92% → ~95% (deployment validation pending)
2025-10-07 23:28:04 +02:00
..

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:

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:

cargo test --package backtesting_service

Documentation

Comprehensive API documentation is available at docs.rs/backtesting_service.