Skip to content
All library documents

Monte Carlo VaR: Returns, Correlation, and Loss Quantiles

Article Quant Q&A · Author: maria

Summary

The document reviews a proposed Monte Carlo VaR workflow, including generating random shocks, introducing dependence with a correlation matrix, applying volatility and drift, simulating returns, and taking a tail quantile. The answers emphasize that the calculation should be tied to modeled risk factors and portfolio losses, with the significance level and time horizon stated when reporting VaR. One response describes simulating paths, repricing each path, and computing a quantile from the resulting discounted payoffs.

A key implementation issue is the distinction between simple returns and log returns. Asset log returns should be converted to simple returns before applying portfolio weights, since the weighted arithmetic aggregation corresponds to simple returns; portfolio returns can then be converted back to log form if needed. The document also mentions Cholesky or singular value decomposition for correlation and Euler or Milstein schemes. It does not settle model choice or validate a complete implementation, and the advice depends on the risk-factor distributions and valuation setup.

Key ideas

  • The VaR simulation should model risk factors, translate their scenarios into portfolio losses, and take the appropriate tail quantile.
  • Weighted portfolio aggregation is exact for simple returns, not directly for log returns.
  • Correlated Gaussian shocks can be generated using a matrix factorization such as Cholesky decomposition or SVD.
  • A reported VaR needs a stated confidence level and time horizon.
  • The simulation scheme and risk-factor distributions depend on the modeled portfolio and valuation process.

Tags

Full text
# Are these steps correct to calculate Value-at-Risk with a Monte Carlo simulation?


# Are these steps correct to calculate Value-at-Risk with a Monte Carlo simulation?












I have a problem calculating VaR with the Monte Carlo Simulation.

I followed the next steps and would like know if it is a right way to calculate VaR or if I need something more?

The steps

- Generate random numbers

- Define Correlation Matrix

- Define volatilities, drift and weights

- Perform a Cholesky decomposition of the correlation matrix

- Multiply random numbers by the Cholesky matrix

- Multiply result of step 5 by volatility and drift

- Take the exponent of results from step 6

- Take log returns of step 7 results

- Create the weighted portfolio returns

- Calculate the VaR (use percentile function at right confidence interval)

- Calculate the volatilites of your random numbers

- Cross-check with analytical VaR

## Answer by Richi Wa (score 2)

https://quant.stackexchange.com/a/19166

Concerning the weighted portfolio returns. If you have weights $w_i$ and individual returns $r_i$ of your assets then it is only precisely true that the portfolio return $r$ is given by the scalar product $$ r = \sum_{i=1}^n w_i r_i $$ if $r_i$ is the usual arithmetic/simple return (not logreturn).

Thereby I mean the simple return $$ r = P_{t+1}/P_t - 1 $$ as opposed to the log-returm $$ R = \ln(P_{t+1}/P_t) = \ln P_{t+1} - \ln P_{t+1}. $$ Switching between the two is easy as $$ R = \ln(1+r) $$ and $$ r = \exp(R)-1. $$ Logreturns are good for statistical modelling as they range from $-\infty$ to $\infty$ and that's where the useful distributions live on. For a portfolio should use the geometric return.

What you can do:

- generated random log-returns for each asset, convert to somple returns.

- aggregate to the simple-returns of the portfolio

- convert the portfolio-returns to log-returns

- calculate a quantile.

For more information on returns you can look here and here.

## Answer by SmallChess (score 1)

https://quant.stackexchange.com/a/23050

I can share how a pricing application (eg: QuantLib) calculates the VaR with Monte-Carlo.

- Generate a vector of independent Gaussian random numbers. A typical (and simple) implementation is Box-Muller. I prefer the inverse transform method, and I think this is also the default for QuantLib.

- Now, we will need to generate correlated returns. We will need a correlation matrix. Decompose the matrix by Cholesky or Singular Value Decomposition. SVD is a stable version but slower. Personally, I have used both of them and found both satisfactory.

- Use the corrected returns to apply for a simulation scheme. I mean, substitue the random correlated numbers into the diffusion terms. Usually, we use the Eurler scheme, but you can also use the Milstein scheme. The Eurler scheme approximates up to the second-orders.

- Use the scheme to generate a list of independent simulation paths. Price each path upon maturity.

- Now you should have a list of payoffs, one for each path. Discount them back and calculate the quartile. This will be your VaR.

When you report your VaR, you will always need to include your significance level and time horizon. The estimate by itself is meaningless.

## Answer by Alessandro Balata (score 0)

https://quant.stackexchange.com/a/17984

You have been not really precise in the explanation of your steps, however remember that "random number" is a rather generic expression since the method you describe can be applied to a restricted class of distribution ( among which normal and t ). Considering I am not sure about your methodology my advice is to follow a more classical approach, therefore define the distribution of your risk factors and generate them ( apriori any distribution is fine) . Once you have a sample you can compute the losses from the risk factor making explicit the relation L=-V(t+1)+V(t)=-f(t+1,Z(t+1))+f(t,Z(t))where Z are the risk factors ...Then sort all the losses you have simulated and take the (q*(# simulations)) highest value to obtains VaR(q)

## Answer by Aborna (score 0)

https://quant.stackexchange.com/a/24723

I would say, the Monte Carlo may be not necessary in your case. You may look through the paper http://www.sciencedirect.com/science/article/pii/S0167715215003247

enter link description here

Good Luck!

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.