5
$\begingroup$

I'd like to create a monte carlo simulation to determine the future price of a stock or index with a certain confidence level. I've seen examples of this described using lognormal returns but I'd like to include the fat tail risk and the asymmetry of price falls vs price rises. Is there a industry standard way to model this, or best practice that is widely used and accepted?

$\endgroup$
1
  • 1
    $\begingroup$ You may want to have a look at GARCH models which allow for fat tails and asymmetry in returns $\endgroup$
    – Kevin
    Commented May 29, 2021 at 19:59

1 Answer 1

6
$\begingroup$

I did a related project years ago and an example from Matlab's website, Using Extreme Value Theory and Copulas to Evaluate Market Risk, proved particularly helpful as the starting point. At a high level, you would -

  1. Fit an Autoregressive-GARCH model to the returns. The autoregressive component accounts for autocorrelation in the time series, and the GARCH component captures heteroskedasticity. Different GARCH model can be used, but the GJR-GARCH variant can introduce asymmetry; further, and the residuals can be modeled using the Student's t-distribution, allowing for fat tails.
  2. After the step above, you have a series of i.i.d. residuals. We can fit any density function to them; a smoothed kernel density function is a good choice, allowing you to capture skew and kurtosis profiles in a very parametric way.
  3. The density function can be further refined using some ideas from the Extreme Value Theory. In particular, we let the middle chunk of the density function be the smoothed kernel density function from step 2, but we use a different set of density functions for the left- and right-tails. These tails can be modeled using something like a Generalized Pareto Distribution.
  4. You're now ready to run MC simulations. You can draw normalized residuals using the density function from step 3 and convert them back into a time series of returns using the AR-GARCH model from step 1.

Again, I recommend that you look at the Matlab example, which lays out everything step-by-step.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.