Markets: A Rigorous Course

2.5 The stylized facts

Core about 10 min

Motivation

Before building any model, know what it has to reproduce. Cont (2001) summarised eleven statistical properties common to returns across assets, markets and periods. A model that fails them, such as iid normal returns, will misprice options, underestimate drawdowns and size positions too large.

2.5.1Cont's eleven facts#

Cont's list (Quantitative Finance 1(2):223–236): (1) absence of linear autocorrelation, except at intraday scales; (2) heavy tails, with tail index between 2 and 5; (3) gain/loss asymmetry (large drawdowns without equally large upward moves); (4) aggregational Gaussianity (the distribution approaches normal as the horizon lengthens); (5) intermittency (bursts of large changes at all scales); (6) volatility clustering; (7) conditional heavy tails (residuals remain heavy-tailed after a GARCH-type correction); (8) slow decay of the autocorrelation of absolute returns, roughly a power law with exponent between 0.2 and 0.4; (9) the leverage effect (volatility is negatively correlated with past returns); (10) volume/volatility correlation; (11) asymmetry in time scales (coarse-grained volatility predicts fine-scale volatility better than the reverse).

2.5.2The facts in Indian data#

Evidence on the Nifty sample (daily, 2007–2026)

Fact Statistic Nifty value Under iid normal
(1) no autocorrelation ρ^1,…,ρ^5\hat\rho_1, \dots, \hat\rho_5 of rr 0.037, −0.005, −0.025, −0.024, 0.004 ±0.029\pm 0.029 (2 s.e.)
(2) heavy tails excess kurtosis 15.2 0 ± 0.14
(2) heavy tails days with ∣z∣>4\lvert z\rvert > 4 38 0.30 expected
(2) heavy tails days with ∣z∣>5\lvert z\rvert > 5 12 0.003 expected
(2) heavy tails Hill α^\hat\alpha, k=100k = 100, both tails 3.05 →∞\to \infty
(3) asymmetry skewness; Hill left vs right (k=100k = 100) −0.28; 2.61 vs 2.86 0
(6), (8) clustering ρ^\hat\rho of ∣r∣\lvert r\rvert at lags 1, 5, 10, 20, 50, 100 0.28, 0.27, 0.28, 0.22, 0.15, 0.14 0 ± 0.03
(6) clustering annual volatility by year 9.0% (2017) to 44.7% (2008) constant

Two features deserve emphasis. The autocorrelation of ∣r∣|r| is still 0.14 at a lag of 100 trading days, which is five months: volatility has long memory. And the largest standardised moves were −10.8σ-10.8\sigma (23 Mar 2020), −10.1σ-10.1\sigma (24 Oct 2008) and +12.6σ+12.6\sigma (18 May 2009, the first session after the 2009 general-election results, when the index hit its upper circuit), measured with the full-sample standard deviation. Under a normal model a 10σ10\sigma day has probability about 10−2310^{-23}.

The existing exercise file exercises/modules/M02-statistics-of-returns/exercises/m02_returns_stats.py (functions excess_kurtosis, autocorr, vol_clustering, tail_ratio, looks_like_real_market) implements these diagnostics; its tests check that they separate GARCH-with-jumps synthetic data from GBM. Run them on a cached Nifty series (toolkit.data.load("NIFTY", source="cache"), from NSE's index files) to reproduce the table.

Practitioner notes

  • Absence of autocorrelation in returns is not independence. Returns are close to unpredictable in sign and highly predictable in magnitude. Volatility forecasting (M09, M13) works for this reason; return forecasting mostly does not.
  • The stylized facts are about liquid assets at daily frequency. Illiquid small-caps show positive autocorrelation from stale prices, and intraday returns show bid–ask bounce (negative first-order autocorrelation, M05).

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.