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?
1 Answer
$\begingroup$
$\endgroup$
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 -
- 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.
- 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.
- 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.
- 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.