Work
Individual ProjectVolatility · Forecasting · Risk Systems

Volatility Risk Forecasting Platform

The platform asks not only which model forecasts volatility best, but whether the resulting risk estimates behave as expected when market regimes change.

Central findingThe strongest model materially improves QLIKE forecast loss over rolling, EWMA and GARCH baselines while maintaining plausible VaR breach frequencies.

Evidence

The result in context

QLIKE improvement vs rolling-21 baseline
40.41%
Improvement vs EWMA(0.94)
83.15%
Improvement vs GARCH(1,1)
91.50%
Persisted analytical rows
2.87m

Question

Which forecasting methods improve on simple baselines, and do their risk estimates survive formal backtesting?

A reproducible forecasting and risk platform comparing statistical and machine-learning models through volatility and VaR backtests.

Forecasting

Simple baselines remain part of the model set

Rolling volatility, exponentially weighted volatility, HAR and GARCH sit beside machine-learning models and ensembles. QLIKE, a loss measure suited to volatility forecasts, provides a common comparison.

The best model improves QLIKE by 40.41% versus a rolling-21 baseline, 83.15% versus EWMA and 91.50% versus GARCH in the committed evaluation.

Model comparison

Forecast model explorer

Compare what each method assumes before comparing its error.

QLIKE evidenceReference

Rolling 21-day baseline

A simple recent-history estimate; transparent and difficult to justify omitting.

4.76%Observed 95% VaR breach rate
0.81%Observed 99% VaR breach rate

Interactive evidence

Rolling HAR leads the full 19-model QLIKE ranking

Average QLIKE across ten assets; lower is better.

Read: The rolling-update HAR records 0.00558 average QLIKE, modestly ahead of the next rolling GARCH-family models.

Data table · 19 verified rows
Complete dataset
ModelAsset CountAvg QlikeAvg RankTop Two Share PctImprovement Vs Rolling21 PctImprovement Vs Ewma PctImprovement Vs Garch Pct
Har Rolling Update100.0055821.88040.41155583.15303491.502378
Garch Rolling Update100.0056112.45040.09884783.07220391.452533
Gjr Rolling Update100.0056332.56039.78708482.9834591.378658
Ewma Rolling Update100.0056793.31039.3776882.86333491.345209
Validation Weighted Ensemble100.0079275.6016.53428276.37937988.148684
Har Rv Market Huber100.009147.301.28117172.04236785.860129
Previous Day Rv100.0092637.90071.7223685.666932
Rolling 21100.0092637.90071.7223685.666932
Har Rv Log Ridge100.0094177.90-1.26350271.32846485.618467
Simple Average Ensemble100.0095659.30-2.82323370.92331985.465859
Har Rv Market Log Ridge100.0096579.10-3.67555770.6516185.302816
Random Forest100.02347912.80-175.92453221.39339361.049185
Hist Gradient Boosting100.02687613.60-210.82829111.37464257.072549
Ewma Tuned100.02926813.80-215.36244110.72755555.012938
Ewma 094100.033114.40-256.779806048.809942
Garch 11100.0741116.50-668.658624-117.8915640
Egarch T100.07605816.90-723.912752-132.668788-12.670258
Rolling 63100.09993517.80-999.837601-207.68123-61.976987
Gjr Garch100.15800418.20-1,617.207943-366.905553-151.149655

Risk

Forecasts become risk estimates

Value at Risk, or VaR, estimates a loss threshold expected to be exceeded only at a stated frequency. The 95% VaR breach rate is 4.76%; the 99% rate is 0.81%.

Kupiec and Christoffersen tests examine whether breaches occur at the expected rate and whether they cluster through time.

Interactive evidence

Observed VaR breach rates remain close to their expected levels

Mean across ten assets and nineteen forecasting models.

Read: The realised rates are 4.76% at 95% confidence and 0.81% at 99%, compared with 5% and 1% expected.

Data table · 2 verified rows
Complete dataset
Confidence Level PctExpected Breach Rate PctObserved Breach Rate PctKupiec Pass Share PctChristoffersen Pass Share Pct
9554.76078792.10526389.473684
9910.81317979.47368486.315789

Platform

The analytical layer is designed for repeated investigation

DuckDB and SQL support 2.87 million analytical rows, while 88 automated checks protect rolling-window logic, forecasts and risk outputs. The dashboard’s measured p95 response is 16.14ms on the documented workload.

Interactive evidence

High-volatility regimes capture most top-decile volatility days

Top-decile capture and high-regime precision by asset.

Read: Capture is intentionally prioritised over precision: the state label catches severe volatility days while accepting false high-regime flags.

Data table · 10 verified rows
Complete dataset
AssetTop Decile Capture PctPrecision PctHigh Regime Share PctMedian Regime Days
AAPL82.10526344.57142918.4794098
GLD80.70175440.56437419.9577615
IWM62.4561435.52894217.6346365
JPM70.87719340.31936117.6346365
MSFT71.2280743.37606816.4730736
NVDA96.84210555.0898217.6346367
QQQ78.59649143.24324318.2330177.5
SPY71.2280741.26016317.3178469
TLT66.66666739.91596616.7546644
USO73.68421150.72463814.5723344

Limitations

What this evidence does not establish

  • Forecast improvements are specific to the dataset, horizon and evaluation window used.
  • A calibrated VaR breach rate does not capture every form of tail risk or liquidity stress.

Source and reproducibility

Trace the evidence

Source code, evaluation outputs and supporting material are available in the repository.

View repository
  1. Model comparisonreports/model_ranking_results.csvCommit / evidence ID: ae7dd4781b6e039ad70b9e57d448f232ca0af3d6
  2. VaR backtestingreports/var_backtest_results.csvCommit / evidence ID: ae7dd4781b6e039ad70b9e57d448f232ca0af3d6
  3. Regime detectionreports/regime_detection_results.csvCommit / evidence ID: ae7dd4781b6e039ad70b9e57d448f232ca0af3d6