Files
foxhunt/backtesting
jgrusewski 3853988af7 feat(hyperopt): Complete DQN hyperopt analysis and PSO optimizer fix
- Fixed PSO budget calculation bug in ml/src/hyperopt/optimizer.rs
  - Root cause: Division by n_particles in sequential execution
  - Now correctly calculates max_iters = remaining_trials (no division)
  - Result: 50 trials complete instead of 23 (100% vs 46%)

- Added comprehensive DQN hyperopt results analysis
  - 39/50 trials analyzed across 2 RunPod deployments
  - Best hyperparameters identified: LR 4.89e-5 (ultra-low)
  - Created DQN_HYPEROPT_RESULTS_SUMMARY.md with expert validation

- GitLab CI/CD pipeline operational (48 lines fixed)
  - Fixed YAML syntax errors (unquoted colons)
  - All 7 jobs validated and working

- Warning cleanup complete (136 → 0 warnings)
  - Removed 143 lines dead code
  - Fixed visibility, unused imports, Debug traits

- Archived Wave D reports to docs/archive/
  - 8 early stopping reports moved
  - Root directory cleaned up

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 21:49:07 +01:00
..

Backtesting Crate

Overview

The backtesting crate provides a robust and configurable engine for simulating trading strategies against historical market data. It enables quantitative analysts and developers to evaluate strategy performance, optimize parameters, and validate hypotheses before live deployment.

Features

  • Historical Data Replay: Efficiently replays market data from Parquet files, supporting various data granularities (ticks, order book snapshots, candles).
  • Comprehensive Performance Metrics: Calculates key performance indicators such as Sharpe Ratio, Maximum Drawdown, Alpha, Beta, Sortino Ratio, and more.
  • Realistic Slippage Modeling: Configurable slippage models (e.g., fixed, percentage, volume-based) to accurately reflect real-world execution costs.
  • Commission Modeling: Supports various commission structures (e.g., fixed per trade, percentage of value, per share/contract) for accurate P&L calculation.
  • Detailed Trade Analytics: Generates in-depth reports on individual trades, cumulative P&L, win/loss ratios, and trade duration analysis.
  • Pluggable Strategy Interface: Defines a clear interface for users to implement and integrate their custom trading strategies seamlessly.

Usage

use backtesting::{Backtester, BacktestConfig};
use common::types::InstrumentId;
use std::path::PathBuf;

let config = BacktestConfig {
    start_time: "2023-01-01T00:00:00Z".parse().unwrap(),
    end_time: "2023-01-02T00:00:00Z".parse().unwrap(),
    data_path: PathBuf::from("./historical_data/"),
    instruments: vec![InstrumentId::new("BTCUSD".to_string())],
    // ... other configuration like slippage, commissions
};

// let mut backtester = Backtester::new(config);
// let strategy = MySimpleStrategy::new(); // Initialize your strategy
// backtester.run(&strategy).expect("Backtest failed");

// let results = backtester.get_results();
// println!("Sharpe Ratio: {}", results.sharpe_ratio);
// println!("Max Drawdown: {}", results.max_drawdown);

Testing

cargo test --package backtesting

Documentation

Full API documentation is available at docs.rs/backtesting.