backtest_statistics
Portfolio Construction and Risk
Performance diagnostics for strategy returns and position trajectories.
Why This Module Exists
Turns raw PnL/returns into risk-adjusted diagnostics used in model selection and production monitoring.
Key Public APIs
sharpe_ratiodeflated_sharpe_ratioprobabilistic_sharpe_ratiodrawdown_and_time_under_wateraverage_holding_period
Core Math
Sharpe
\[S=\frac{\mu-r_f}{\sigma}\]
Information Ratio
\[IR=\frac{\mu-r_b}{\sigma_{(r-r_b)}}\]
Code Examples
Compute Sharpe and drawdown
use openquant::backtest_statistics::{sharpe_ratio, drawdown_and_time_under_water};
let returns = vec![0.01, -0.005, 0.007, -0.002, 0.003];
let sr = sharpe_ratio(&returns, 252.0, 0.0);
let (dd, tuw) = drawdown_and_time_under_water(&returns);
println!("{sr} {dd:?} {tuw:?}");
Implementation Notes
- Use annualization constants consistent with your bar frequency.
- Deflated Sharpe is useful when strategy mining many variants.