Skip to main content

Module comparison

Module comparison 

Source
Expand description

Side-by-side comparison of multiple backtest results.

Use BacktestComparison to rank several BacktestResults by a chosen metric and inspect every strategy’s key numbers in one place.

§Example

use finance_query::backtesting::{
    BacktestComparison, BacktestConfig, SmaCrossover, MacdSignal,
    optimizer::OptimizeMetric,
};
use finance_query::{Ticker, Interval, TimeRange};

let ticker = Ticker::new("AAPL").await?;
let config  = BacktestConfig::default();

let result1 = ticker.backtest(SmaCrossover::new(10, 50), Interval::OneDay, TimeRange::OneYear, None).await?;
let result2 = ticker.backtest(MacdSignal::default(),     Interval::OneDay, TimeRange::OneYear, None).await?;

let report = BacktestComparison::new()
    .add("SMA 10/50", result1)
    .add("MACD Signal", result2)
    .ranked_by(OptimizeMetric::SharpeRatio);

println!("Winner: {}", report.winner());
for row in report.table() {
    println!("{}: sharpe={:.2} return={:.1}%", row.label, row.sharpe_ratio, row.total_return_pct);
}

Structs§

BacktestComparison
Builder that accumulates BacktestResults and ranks them.
ComparisonReport
Ranked comparison of multiple backtest results produced by BacktestComparison::ranked_by.
ComparisonRow
A single row in the comparison table — one strategy’s key metrics.