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§
- Backtest
Comparison - Builder that accumulates
BacktestResults and ranks them. - Comparison
Report - Ranked comparison of multiple backtest results produced by
BacktestComparison::ranked_by. - Comparison
Row - A single row in the comparison table — one strategy’s key metrics.