Volatility measures how widely returns disperse around their average. In practical terms it tells you, "How bumpy is the ride?"—the greater the volatility, the larger the typical up- or down-swings you can expect over the period in question.
For a series of returns :
Units → the same as returns (e.g., % per day).
Annualisation → (for trading-day data).
Because the formula squares deviations, it penalises big moves heavily, capturing both upside and downside swings.
Inside our implementation, you'll find:
volatility = port_returns.std() * np.sqrt(252)
Aspect | Detail |
---|---|
Data frequency | Daily simple returns (port_returns ) |
Estimator | Sample standard deviation (Series.std() uses denominator) |
Annual factor | √252 multiplies daily σ to yearly |
Storage | Result sits in performance.volatility for each optimisation method (MVO, MinVol, HRP, …) |
Annual σ | Typical Asset Class | Rule-of-thumb Daily Move (±1 σ) |
---|---|---|
3 %–5 % | 3-month T-bill | 0.20 %–0.30 bps |
10 % | Investment-grade bonds | ~0.6 % |
15 % | Large-cap equities | ~1.0 % |
30 %+ | Crypto, single tech stocks | 1.9 % + |
Higher σ ⇒ wider return range; not inherently "bad," but must be balanced against expected return (Sharpe, Sortino, Treynor).
Position sizing – allocate less capital to high-σ components.
Risk limits – trading desks impose daily VaR or σ ceilings.
Sharpe & Sortino – denominator uses σ (or downside σ).
Portfolio optimisation – MPT minimises σ for a target return.
It's a proxy for price uncertainty; it doesn't distinguish upside vs. downside. Complement with drawdown and tail metrics.
No—by definition it's a square-root of squared deviations.
Compare to peer assets or benchmarks; 20 % annual σ for equities is typical, 60 % is extreme.
Hull, J. Options, Futures, and Other Derivatives, 11 ed. – Ch. 1 (Volatility Basics).
Pafka & Kondor (2003) – Estimated correlation matrices… Physica A 319.