Skip to content
All library documents

Using Extreme Value Theory for Conditional Return VaR

Article Quant Q&A · Author: Nina

Summary

The document raises a practical question about calculating tail Value at Risk with extreme value theory after standardizing returns by conditional volatility. The described workflow sorts residuals, selects a high threshold, fits a generalized Pareto distribution to exceedances, and uses the fitted tail parameters and exceedance frequency to estimate a quantile. That estimate is then rescaled by conditional volatility to express VaR in return units.

The central issue is sign convention: the residual tail quantile is positive, while losses are commonly reported as negative returns, so the proposed calculation negates the rescaled quantile. The text does not include an answer resolving whether that convention is correct. Correct interpretation depends on whether the modeled tail represents unusually positive returns or losses, how returns and VaR are defined, and whether volatility and threshold calculations align with the target tail probability. It offers a code example but no validation, dataset, or performance evidence.

Key ideas

  • The example standardizes returns using conditional volatility before modeling the residual tail.
  • A generalized Pareto fit to threshold exceedances is used to estimate an extreme quantile.
  • The residual quantile is rescaled by conditional volatility to obtain a return-level VaR estimate.
  • Whether the estimate should be negated depends on the modeled tail and the chosen VaR sign convention.
  • The document asks the sign question but provides no validation or definitive resolution.

Tags

Full text
# Calculate VaR using the extreme value theory


# Calculate VaR using the extreme value theory












I am trying to calculate the Value at Risk for different models. But I am now confused for some reason. Could you please help me?

I calculate the 1% and 5% VaR (so negative numbers) and I am also calculating the VaR using EVT. I was looking at some papers on this topic. `y_in` are the returns and `V0_in` are the conditional volatilities.

```
stres = (y_in)./sqrt(V0_in);
epssort = sortrows(stres(:,1),-1);
psi = alpha + 0.02;
trunres = epssort(ceil(psi*T));
eps = epssort(epssort>trunres);
[par] = gpfit(eps-trunres);
xi = par(1);
beta = par(2);
z = trunres + beta/xi*(((alpha/(size(eps,1)/size(stres,1)))^(-xi)-1));
V0_out(1) = info.X(1)/(1-info.X(2)-info.X(3));
VaR_GARCH_in = -sqrt(V0_in)*z;
```

I am looking at the positive residual numbers. In the last stage I multiply the `z` with a minus, otherwise I don't get a negative number. But is this correct?

Thank you so much.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.