qs_backtest/evaluation.rs
1//! Additive, report-independent provider evaluation.
2//!
3//! The module accepts normalized [`PositionOutcome`] rows instead of depending on
4//! [`crate::report::TradeResult`] or [`crate::report::PositionSummary`]. A current
5//! integration can map one `PositionSummary` to one outcome (`net_pnl`, symbol,
6//! side, group, close reasons, and final-close ordering); future report versions
7//! can additionally supply R, excursions, lifecycle counters, and execution
8//! diagnostics without changing this evaluator.
9//!
10//! Filtering is exact and case-sensitive. Values within a filter dimension are
11//! ORed, while different dimensions (including each tag key) are ANDed.
12//! Breakdowns and rolling order are deterministic. No overall score, rank, or
13//! rating is produced.
14
15mod evaluator;
16mod model;
17mod stats;
18
19pub use evaluator::evaluate;
20pub use model::*;
21pub use stats::{bootstrap_mean_confidence, wilson_interval};
22
23#[cfg(test)]
24mod tests;