Here’s a systematic breakdown of all questions along with step-by-step Excel guidance and
solution tips to help you complete this assignment effectively. I’ll outline each question,
interpretation, solution method, and Excel tips accordingly.
✅ Preliminary Setup
Assumption: Today is Monday 4/21/2025. Full data up to today is available.
Goal: Measure 5-day VaR and Expected Shortfall (ES) using:
o (a) Historical Simulation (HS)
o (b) GARCH + Monte Carlo Simulation (MCS) under conditional normality
o (c) GARCH + Filtered Historical Simulation (FHS)
Q0. Student Names and Disclosures
Task: List students you’ve discussed with, any issues, or use of AI tools.
Q1. QQ-Plots for Normality Testing
Q1(a) QQ Plot: Raw Return Distribution vs Normal
Steps in Excel:
1. Sort historical returns from smallest to largest.
2. Create quantiles: Use =NORM.INV(PERCENTILE.RANK.INC(), mean, stddev)
o Example: If 1000 data points, for i-th sorted return: =NORM.INV((i-0.5)/1000,
mean, stddev)
3. Plot:
oX-axis: Normal quantiles
oY-axis: Empirical returns
4. Format: Add 45-degree line.
Interpretation: Determine if unconditional return distribution is normal. Look for fat tails,
skew, etc.
Q1(b) QQ Plot: Filtered z_t vs Standard Normal
Steps in Excel:
1. Given: R_t = σ_t * z_t ⇒ z_t = R_t / σ_t (GARCH σ_t already provided)
2. Repeat the same steps as Q1(a) but for z_t and standard normal.
Interpretation: Check if conditional return distribution is normal. Fat tails suggest otherwise.
Q2. Compute Daily VaR at 5%
Q2(a) Historical Simulation (HS)
Steps in Excel:
1. Choose m = 200.
2. For each day after the first 200:
o Get trailing 200 returns: OFFSET(...)
o Compute 5th percentile: =PERCENTILE.EXC(...)
o Store as VaR_t
Q2(b) GARCH + Normal
Steps:
1. GARCH σ_t given.
2. For each t, use:
o VaR_t = -z_p * σ_t
o Where z_p = NORM.S.INV(0.05)
Q2(c) GARCH + Filtered Historical Simulation (FHS)
Steps:
1. Get z_t = R_t / σ_t (already computed).
2. Use trailing 200 z_t values.
3. Get 5th percentile of z_t: =PERCENTILE.EXC(...)
4. VaR_t = - (percentile of z_t) * σ_t
Q3. VaR Breach Analysis (Unconditional)
Steps:
1. For each method, define breach as:
o =IF(R_t < -VaR_t, 1, 0)
2. Compute:
o Total breaches: =SUM(...)
o Frequency: =# of breaches / # of days
3. Theoretical freq = p = 0.05
Interpretation:
If observed frequency > 0.05 → VaR is too low (underestimation)
If < 0.05 → VaR is too high
Q4. Conditional Performance: Breach Clustering
Steps:
1. Create bar plots (Excel “Column Chart”) for breach indicator series over time.
2. Plot 3 charts:
o HS
o GARCH+Normal
o GARCH+FHS
Interpretation:
Look for clustering (many breaches together)
Does clustering mean model missed volatility spikes?
Ideally, no clustering under correct VaR model.
Q5. Change p from 0.05 → 0.01
Steps:
1. Store p in a cell (e.g., A1 = 0.05).
2. Use $A$1 reference in formulas instead of hard-coded 0.05.
3. Change A1 to 0.01.
4. All VaR and breach frequencies update automatically.
5. Repeat Q3 and Q4 analyses for p = 0.01.
Key Insight:
GARCH + Normal will perform worse at lower p (fat tails ignored).
FHS captures better tail behavior.
Q6. Compute 5-Day Cumulative VaR and ES
Use only methods (b) and (c):
Q6(b) GARCH + Monte Carlo Simulation (Normal)
Steps:
1. Simulate 1000 5-day paths of z_t ~ N(0,1).
2. Use latest GARCH σ_t.
3. Generate path: R_t+1 = σ_t+1 * z_t+1, and so on.
4. Sum 5-day returns.
5. Get 5% VaR and ES:
o VaR = PERCENTILE(..., 5%)
o ES = AVERAGE(...) of worst 5%
Q6(c) GARCH + Filtered Historical Simulation
Steps:
1. Sample 1000 paths of z_t from historical empirical z_t (from full sample).
2. Use GARCH σ_t to generate paths:
o Multiply sampled z_t with corresponding forecast σ_t+1,...t+5
3. Sum 5-day cumulative returns.
4. Calculate VaR and ES as above.
📊 Excel Best Practices Summary
Task Excel Function/Tips
QQ-plot NORM.INV, SORT, scatter plot with 45° line
Historical VaR PERCENTILE.EXC, OFFSET for rolling window
GARCH-Normal VaR NORM.S.INV, multiply by σ_t
Filtered Historical Use z_t = R_t / σ_t, then apply percentile
Task Excel Function/Tips
Monte Carlo RAND(), inverse transform method
Cumulative returns Use SUM() over 5-day simulated returns
Breach Indicator =IF(R_t < -VaR_t, 1, 0)
Charts Use one chart format, then copy-paste for consistency
Parameterization Keep p in a separate cell, use $A$1 in formulas
Would you like a template Excel file structure suggestion to get started?