Hierarchical Portfolio Construction with Volatility Weights and Risk Targets
Summary
This guide walks through a hand-built method for allocating a long-only portfolio across assets or trading strategies. It groups assets hierarchically, assigns volatility-based weights within groups, and can optionally adjust for estimated Sharpe ratios and diversification. The author describes spreadsheet and Python implementations, using correlation-based clustering for automated grouping and common-sense groupings for the spreadsheet approach. The method is intended to be understandable and usable for a small number of assets, while also supporting backtests in code.
The examples cover bonds, rates, and commodities. They show how a risk target can be met by holding cash when the portfolio’s natural risk is too high, applying leverage when permitted, or shifting allocation toward higher-risk groups when leverage is unavailable. The worked examples report different natural portfolio risks for the spreadsheet and Python versions, reflecting differences in their weights. The method depends on estimated volatilities, correlations, and grouping choices; the spreadsheet process requires manual decisions, and the document says it is unsuitable for long-short portfolios.
Key ideas
- Assets can be grouped hierarchically by common characteristics or by clustering their correlations.
- Volatility weights are calculated within groups, with equal weighting or a candidate-matching approach available at the lowest level.
- Sharpe ratio adjustments and diversification multipliers can optionally modify the initial weights.
- A risk target can be reached with cash, leverage, or a change in the mix of higher- and lower-risk groups.
- The spreadsheet approach is designed for small, one-off long-only portfolios, while the Python approach supports automated grouping and backtesting.
Tags
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.