← Back to Learn
III AdvancedWeek 8 • Lesson 21Duration: 55 min

VAR Value at Risk (VaR)

Quantifying your worst-case scenario — and why it still isn't enough

Learning Objectives

  • Understand what VaR actually measures (and what it doesn't)
  • Compare parametric, historical, and Monte Carlo VaR methods
  • Know when each method is appropriate and where each one breaks
  • Read VaR output and apply it to real risk decisions

Explain Like I'm 5

VaR answers one question: "What's the most I could lose on a normal bad day?" If your 95% VaR is $10K, that means 95% of the time, you won't lose more than $10K. But the other 5%? It says nothing about that. It tells you where the bad neighborhood starts — not how dangerous it gets inside.

Think of It This Way

VaR is like a weather forecast that says "5% chance of rain." Useful, but it doesn't tell you whether it'll drizzle or flood. You know rain is unlikely, but when it comes, you have no idea how bad. That's exactly why VaR alone isn't enough — you need Expected Shortfall to understand what happens in the tail.

1Three Ways to Calculate VaR

There are three main approaches and each one has real tradeoffs. Parametric VaR assumes returns follow a normal distribution. You plug in the mean and standard deviation, grab a z-score, and you're done. Fast and clean. The problem is that markets aren't normal — they have fat tails. Parametric VaR consistently underestimates the bad stuff. Historical VaR skips the distribution assumption entirely. Sort your past returns, find the 5th percentile, and that's your 95% VaR. Simple and honest. The catch is it assumes the future resembles the past. Sometimes it does. Sometimes it really doesn't. Monte Carlo VaR generates thousands of simulated scenarios from estimated parameters, then takes the 5th percentile of simulated outcomes. It's the most flexible — you can model fat tails, complex portfolios, serial correlations. It's also the slowest and most dependent on getting your simulation parameters right. Production trading systems typically use Monte Carlo with block bootstrap to preserve realistic trade sequences. Thousands of simulations. This is how you estimate breach probability before deploying real capital.

2Same Data, Different Answers

Here's what trips people up — same portfolio, same data, three very different VaR estimates. Parametric consistently underestimates because it can't handle fat tails. Historical sits in the middle but looks backward. Monte Carlo with a Student-t distribution gives you the most realistic picture. Notice how the methods diverge more at higher confidence levels. That's exactly where accuracy matters most — the 99.9% level is where you make survival decisions.

VaR Estimates by Method at Different Confidence Levels

3VaR for Prop Firm Risk

If you're trading a funded account with a 10% total drawdown limit, voila — you have a real VaR question on your hands. Specifically: • Daily VaR at 99%: will I breach the daily loss limit? • Total VaR at 99.9%: will I breach the total drawdown limit? Monte Carlo validation gives you these numbers. You run thousands of simulations, check what the 95th and 99th percentile drawdowns look like, and calculate breach probability directly. If the breach probability is well below your tolerance — say under 5% — you can deploy with confidence. Without this analysis, you're guessing. And guessing with someone else's money is a short career. Jorion, P. (2006). "Value at Risk: The New Benchmark for Managing Financial Risk." McGraw-Hill.

4Where VaR Falls Short

VaR has real problems and you need to know them: Not sub-additive. VaR of a combined portfolio can exceed the sum of individual VaRs. This breaks the math of diversification. It literally says combining assets can increase risk, which makes no sense. Silent on tail severity. 95% VaR of 10Kmeansyoulosemorethan10K means you lose more than10K about 5% of the time. But how much more? 11K?11K?50K? VaR doesn't say. Model-dependent. Parametric VaR assumes normality (wrong for markets). Historical VaR assumes the past repeats (sometimes wrong). Monte Carlo depends on your simulation quality. Pro-cyclical. VaR drops in calm markets because volatility is low, which encourages bigger positions — right before volatility comes back and hurts you. It creates false confidence at the worst possible moment. This is why Expected Shortfall was developed as the better alternative. But VaR is still reported everywhere. You need to understand it.

5The Tail Risk Problem — Visualized

This chart shows a typical return distribution. The green zone is where 95% of returns live — VaR captures this boundary just fine. But look at the red tail on the left. That's the 5% zone where losses can be far worse than VaR suggests. VaR tells you the door to the red zone. It says nothing about how deep it goes. That's the whole motivation for Expected Shortfall, which we cover next.

Return Distribution with VaR Threshold

Key Formulas

Parametric VaR (Normal)

VaR assuming normal returns. μ is mean return, σ is standard deviation, z_α is the z-score for confidence level α (e.g., -1.645 for 95%). Fast to compute, but underestimates tail risk because markets aren't normal.

Historical VaR

Take the (1-α) percentile of historical returns. No distribution assumptions. The 5th percentile of 1,000 days of returns gives you the 95% VaR.

Hands-On Code

Three VaR Methods Compared

python
import numpy as np
from scipy import stats

def compute_var(returns, confidence=0.95):
    """Compare parametric, historical, and MC VaR."""
    alpha = 1 - confidence
    
    # Parametric VaR (normal assumption)
    mu, sigma = returns.mean(), returns.std()
    z = stats.norm.ppf(alpha)
    parametric_var = -(mu + z * sigma)
    
    # Historical VaR (empirical)
    historical_var = -np.percentile(returns, alpha * 100)
    
    # Monte Carlo VaR (t-distribution for fatter tails)
    df = 5
    sims = stats.t.rvs(df, loc=mu, scale=sigma, size=10000)
    mc_var = -np.percentile(sims, alpha * 100)
    
    print(f"Parametric VaR ({confidence:.0%}): {parametric_var:.2%}")
    print(f"Historical VaR ({confidence:.0%}): {historical_var:.2%}")
    print(f"Monte Carlo VaR ({confidence:.0%}): {mc_var:.2%}")
    
    return parametric_var, historical_var, mc_var

Parametric VaR typically underestimates because it assumes normality. Monte Carlo with fat tails gives the most realistic estimates. Always compare methods — if they disagree significantly, dig into why.

Knowledge Check

Q1.95% VaR of $10K means:

Q2.Why would a production system prefer Monte Carlo VaR over parametric?

Assignment

Compute all three VaR estimates (parametric, historical, Monte Carlo) for a set of daily returns. Plot the return distribution and mark each VaR level. Notice how parametric VaR sits closer to zero — that's the gap fat tails create.