Files
foxhunt/services/backtesting_service
jgrusewski 99e8d586a8 feat(tli): Implement agent allocate-portfolio command (WAVE 12.3.3)
- Add AllocatePortfolioArgs struct with validation
- Support 5 allocation strategies (equal-weight, risk-parity, ml-optimized, mean-variance, kelly)
- Implement constraint validation (0 < min < max < 1.0, positive capital)
- Real gRPC integration with Trading Agent Service via API Gateway
- Formatted table output with portfolio allocations and risk metrics
- JWT authentication support via Bearer token in gRPC metadata
- 15 comprehensive TDD integration tests (all passing)
- Case-insensitive strategy parsing

Test Results: cargo test -p tli --test agent_commands_test
 15 passed, 0 failed

Files:
- tli/src/commands/agent.rs (NEW - 466 lines)
- tli/src/commands/mod.rs (export AgentArgs)
- tli/src/main.rs (integrate agent command)
- tli/tests/agent_commands_test.rs (NEW - 15 tests)
- tli/proto/trading_agent.proto (NEW)

Co-authored-by: Wave 12.3.3 TDD Implementation
2025-10-16 08:18:42 +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.