OpenQuant Docs banner
OpenQuant icon openquant-rs / documentation terminal

hrp

Portfolio Construction and Risk

Hierarchical Risk Parity allocation with recursive bisection.

Why This Module Exists

Produces stable allocations without matrix inversion required by classic Markowitz.

Key Public APIs

  • HierarchicalRiskParity
  • HrpDendrogram

Core Math

IVP Weight

\[w_i\propto\frac{1}{\sigma_i^2}\]

Bisection Split

\[\alpha=1-\frac{\sigma_{left}^2}{\sigma_{left}^2+\sigma_{right}^2}\]

Code Examples

Allocate with HRP

use openquant::hrp::HierarchicalRiskParity;

let mut hrp = HierarchicalRiskParity::new();
let weights = hrp.allocate(&prices)?;

Implementation Notes

  • HRP is often more robust under unstable covariance estimates.
  • Ensure input asset order tracks produced dendrogram order.