Position Sizing & Leverage: Kelly Criterion Strategy › Risk Parity and Volatility Targeting
Quantitative FinanceAll chapters Position Sizing & Leverage: Kelly Criterion Strategy › Risk Parity and Volatility TargetingOne section · Sections in this chapter5 / 9 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
Given the dangers of leverage and the difficulties of estimating expected returns, alternative allocation frameworks focus on risk rather than return.
Risk Parity Principles
Risk parity, pioneered by Ray Dalio's Bridgewater Associates, allocates capital so that each asset contributes equally to portfolio risk. The core insight is that expected returns are notoriously difficult to estimate, but volatilities and correlations are relatively stable and predictable. By focusing on what we can estimate reliably, risk parity sidesteps much of the estimation error that plagues return-based optimization.
For a long-only portfolio where each asset contributes equally to risk (), we require:
where:
- : weight of asset
- : covariance matrix of returns
- : marginal covariance of asset
- : portfolio variance
- : number of assets
When assets are uncorrelated, this simplifies to inverse-volatility weighting:
where:
- : weight of asset
- : volatility of asset
Lower-volatility assets receive higher weights, which for traditional portfolios means bonds receive much larger allocations than stocks. To achieve competitive returns, risk parity portfolios typically apply leverage to the entire portfolio, bringing total volatility to a target level (often 10-15% annually).
Volatility Targeting
A related approach is volatility targeting, where position sizes are adjusted dynamically to maintain constant portfolio volatility. This approach recognizes that volatility varies substantially over time, so static position sizing produces varying levels of actual risk. If target volatility is and current estimated volatility is , the position multiplier is:
where:
- : leverage scaling factor at time
- : target volatility
- : estimated current volatility
This approach automatically reduces positions during high-volatility periods (when losses are most likely) and increases positions during calm periods. Research shows this can improve risk-adjusted returns and reduce drawdowns compared to constant position sizing.
import numpy as np
def simulate_volatility_targeting(returns, target_vol, lookback=20):
"""
Simulate a volatility-targeting strategy.
Parameters:
- returns: array of daily returns
- target_vol: target daily volatility
- lookback: days for volatility estimation
"""
n = len(returns)
leverages = np.ones(n)
targeted_returns = np.zeros(n)
for t in range(lookback, n):
# Estimate volatility from recent returns
recent_vol = np.std(returns[t - lookback : t])
# Calculate leverage to hit target volatility
if recent_vol > 0:
leverage = min(target_vol / recent_vol, 3.0) # Cap at 3x
else:
leverage = 1.0
leverages[t] = leverage
targeted_returns[t] = leverage * returns[t]
return targeted_returns, leverages
# Simulate a strategy with time-varying volatility
np.random.seed(123)
n_days = 1000
# Create volatility regime (low vol, then high vol, then low again)
vol_regime = np.concatenate(
[
np.ones(400) * 0.01, # Low vol period
np.ones(200) * 0.03, # High vol period (crisis)
np.ones(400) * 0.012, # Return to normal
]
)
# Generate returns with constant expected return but time-varying vol
base_returns = np.random.normal(0.0003, 1, n_days) * vol_regime
# Apply volatility targeting
target_daily_vol = 0.01 # Target 1% daily vol (~16% annual)
targeted_returns, leverages = simulate_volatility_targeting(
base_returns, target_daily_vol, lookback=20
)


The visualization demonstrates volatility targeting's key benefit: automatic risk reduction during dangerous periods. During the simulated crisis (days 400-600), the strategy reduced leverage to well below 1x, limiting losses. After the crisis, leverage gradually increased as volatility estimates came down.