pub fn max_drawdown(equity: &[Decimal]) -> Result<Decimal, MetricsError>Expand description
Calculate maximum drawdown as a percentage.
Drawdown is the peak-to-trough decline during a specific period. Max drawdown is the largest such decline.
Formula: min((trough - peak) / peak * 100) for all peaks
§Arguments
equity- Equity curve (NAV or portfolio value over time)
§Returns
Maximum drawdown as a negative percentage (e.g., -15.5 for 15.5% drawdown). Returns 0 if no drawdown occurred.
§Example
use quant_metrics::max_drawdown;
use rust_decimal_macros::dec;
let equity = vec![dec!(100), dec!(110), dec!(90), dec!(105)];
// Peak was 110, trough was 90 -> -18.18%
let dd = max_drawdown(&equity).unwrap();
assert!(dd < dec!(0));