One of the most common ways to estimate risk is the use of a Monte Carlo simulation (MCS). For example, to calculate the value at risk (VaR) of a portfolio, we can run a Monte Carlo simulation that attempts to predict the worst likely loss for a portfolio given a confidence interval over a specified time horizon - we always need to specify two conditions for VaR: confidence and horizon. (For related reading, see The Uses And Limits Of Volatility and Introduction To Value At Risk (VAR) - Part 1 and Part 2.)
In this article, we will review a basic MCS applied to a stock price. We need a model to specify the behavior of the stock price, and we'll use one of the most common models in finance: geometric Brownian motion (GBM). Therefore, while Monte Carlo simulation can refer to a universe of different approaches to simulation, we will start here with the most basic.
Where to Start
A Monte Carlo simulation is an attempt to predict the future many times over. At the end of the simulation, thousands or millions of "random trials" produce a distribution of outcomes that can be analyzed. The basics steps are:
1. Specify a model (e.g. geometric Brownian motion)
2. Generate random trials
3. Process the output
1. Specify a Model (e.g. GBM)
In this article, we will use the geometric Brownian motion (GBM), which is technically a Markov process. This means that the stock price follows a random walk and is consistent with (at the very least) the weak form of the efficient market hypothesis (EMH): past price information is already incorporated and the next price movement is "conditionally independent" of past price movements. (For more on EMH, read Working Through The Efficient Market Hypothesis and What Is Market Efficiency?)
The formula for GBM is found below, where "S" is the stock price, "m" (the Greek mu) is the expected return, "s" (Greek sigma) is the standard deviation of returns, "t" is time, and "e" (Greek epsilon) is the random variable:
If we rearrange the formula to solve just for the change in stock price, we see that GMB says the change in stock price is the stock price "S" multiplied by the two terms found inside the parenthesis below:
The first term is a "drift" and the second term is a "shock". For each time period, our model assumes the price will "drift" up by the expected return. But the drift will be shocked (added or subtracted) by a random shock. The random shock will be the standard deviation "s" multiplied by a random number "e". This is simply a way of scaling the standard deviation.
That is the essence of GBM, as illustrated in Figure 1. The stock price follows a series of steps, where each step is a drift plus/minus a random shock (itself a function of the stock's standard deviation):
2. Generate Random Trials
Armed with a model specification, we then proceed to run random trials. To illustrate, we've used Microsoft Excel to run 40 trials. Keep in mind that this is an unrealistically small sample; most simulations or "sims" run at least several thousand trials.
In this case, let's assume that the stock begins on day zero with a price of $10. Here is a chart of the outcome where each time step (or interval) is one day and the series runs for ten days (in summary: forty trials with daily steps over ten days):
|Figure 2: Geometric Brownian Motion|
The result is forty simulated stock prices at the end of 10 days. None has happened to fall below $9, and one is above $11.
3. Process the Output
The simulation produced a distribution of hypothetical future outcomes. We could do several things with the output. If, for example, we want to estimate VaR with 95% confidence, then we only need to locate the thirty-eighth-ranked outcome (the third-worst outcome). That's because 2/40 equals 5%, so the two worst outcomes are in the lowest 5%.
If we stack the illustrated outcomes into bins (each bin is one-third of $1, so three bins covers the interval from $9 to $10), we'll get the following histogram:
Remember that our GBM model assumes normality: price returns are normally distributed with expected return (mean) "m" and standard deviation "s". Interestingly, our histogram isn't looking normal. In fact, with more trials, it will not tend toward normality. Instead, it will tend toward a lognormal distribution: a sharp drop off to the left of mean and a highly skewed "long tail" to the right of the mean. This often leads to a potentially confusing dynamic for first-time students:
- Price returns are normally distributed.
- Price levels are log-normally distributed.
Think about it this way: A stock can return up or down 5% or 10%, but after a certain period of time, the stock price cannot be negative. Further, price increases on the upside have a compounding effect, while price decreases on the downside reduce the base: lose 10% and you are left with less to lose the next time. Here is a chart of the lognormal distribution superimposed on our illustrated assumptions (e.g. starting price of $10):
A Monte Carlo simulation applies a selected model (a model that specifies the behavior of an instrument) to a large set of random trials in an attempt to produce a plausible set of possible future outcomes. In regard to simulating stock prices, the most common model is geometric Brownian motion (GBM). GBM assumes that a constant drift is accompanied by random shocks. While the period returns under GBM are normally distributed, the consequent multi-period (for example, ten days) price levels are lognormally distributed.
Check out David Harper's movie tutorial, Monte Carlo Simulation with Geometric Brownian Motion, to learn more on this topic.