Give the hierarchy
an expected return.
Risk tells us how assets move together. Alpha tells us which way to lean. Explore what happens when portfolio construction uses both.
Enter the portfolio lab ↓Same market. Different decisions.
Does the portfolio hear the forecast?
Move an alpha slider. HRP stays fixed; the signal-aware methods respond.
Inspect the covariance matrix
Annualized covariance, shown × 10,000. Volatilities: 18%, 22%, 16%, 24%, 20%, 17%, 25%, 19%. The fixed balanced tree groups consecutive pairs; clustering is held constant to isolate allocation.
Eight assets, seven local decisions.
Select a branch to inspect its two-portfolio allocation problem.
Each branch becomes one representative portfolio. Its children are allocated using two variances, one covariance and, for the signal-aware methods, two expected returns. Local optimality in these representatives does not imply global Markowitz optimality.
One coordinate at a time.
Start from μ divided by variance. Each sweep incorporates the latest weights.
For positive-definite Σ and 0 ≤ γ ≤ 1, the unlimited Gauss–Seidel iteration converges to Pγ−1μ. This is a numerical guarantee, not a guarantee of investment performance. Total work depends on the number of sweeps; shrinking correlations also changes the portfolio being solved for.
The update, and what the animation measures
Residual = ‖Pγw − μ‖₂ / ‖μ‖₂. Distance = ‖w − w*‖₂ / ‖w*‖₂ for the direct-solve target w*. Updates and diagnostics use raw weights; bars use positive gross normalization. The plot shows actual residuals, not a theoretical rate. Animation stops at residual < 10⁻¹⁰ or 200 sweeps.
A better fit can make a worse portfolio.
Estimate risk from a small synthetic sample, then evaluate on the known population.
40 seeded repetitions at 21 γ values. Each repetition draws T independent Gaussian return vectors from the current covariance and adds independent Gaussian noise to the current signal. Each covariance estimate receives a 10⁻⁸ diagonal ridge. The curve is mean population Sharpe μtrueᵀw / √(wᵀΣtruew) of the directly solved shrinkage portfolio. This evaluates the CRISP fixed point. It is not a historical backtest, a replication of the paper’s numerical tables, or an implementable out-of-sample tuning rule. The best γ shown uses population information for teaching.
Keep the structure.
Let the signal in.
HRP-μ
Represent each cluster with signed inverse-variance weights. Carry the expected return into a two-branch allocation, and preserve the signal direction at the leaves.
At γ = 0 and μ = 1, this recovers the HRP rule implemented here on the same tree.
HRP-Σμ
Build representative portfolios from the bottom up. At each node, solve a local two-portfolio mean–variance problem and normalize by gross exposure, |αL| + |αR|.
The positive denominator preserves the orientation of the local solution. This recursive construction need not reproduce standard HRP exactly.
CRISP
Remove the hierarchy and solve a shrunk covariance system. Keep marginal variances, attenuate correlations, and use sequential coordinate updates to reach the solution.
At convergence the result equals direct Markowitz on Pγ. Shrinkage and the numerical solver are separate choices.
FROM PICTURE TO PAPER
Keep the intuition.
Follow the argument.
Markets and quantitative finance
In the papers catalogue ↗