Skip to content
All library documents

Calculating GBM Price Threshold Probabilities with the Lognormal CDF

Article Quant Q&A · Author: QFII

Summary

For a stock modeled by geometric Brownian motion, the document explains how to find the chance that its future price falls below a specified threshold. The logarithm of the price is normally distributed, with a mean adjusted for the volatility term and variance equal to volatility squared times the time horizon. To obtain the probability below the threshold, evaluate the normal cumulative distribution at the logarithm of that threshold using those distribution parameters. The example uses a starting price of 95, annual drift of 16%, volatility of 24%, and a one-year horizon, and reports a probability of about 0.263 for finishing below 93.

The probability of finishing above the threshold is the complement of the below-threshold probability. The density formula at a single price gives a probability density, not the probability of being below that price; a cumulative distribution is needed for the latter. The calculation depends on the GBM assumptions and the chosen time horizon, so changing the horizon changes the probability.

Key ideas

  • Under GBM, the logarithm of the future price follows a normal distribution.
  • The log-price mean includes drift adjusted by half the variance rate.
  • A threshold probability is found by evaluating the normal CDF at the log of the threshold.
  • A density value at one price is not the probability of finishing below that price.
  • The probability of finishing above a threshold is the complement of the probability of finishing below it.

Tags

Full text
# Geometric Brownian Motion - Price Probabilities


# Geometric Brownian Motion - Price Probabilities












I am modeling a stock price that follows Geometric Brownian Motion and have the following:

$E(X)$ = .16 (16%)

$\sigma$ = .24 (24%)

$X_0$ = 95

$T$ = 1 (12 months)

I am trying to find the probability that the price of this stock will be below 93 at the end of this time period. I am calculating this analytically, using the Log Normal Distribution given as the following:

$P(X,t)$ = $1\over X $$ \cdot$$1\over {\sigma \sqrt{2 \pi t}}$$\cdot$$e^{-(ln(x)- ln(x_0)-(\mu- \sigma^2 /2)t)^2}\over 2\sigma^2t$

I can plug in the values as the following:

$P(X,t)$ = $1\over X $$ \cdot$$1\over {(.24) \sqrt{2 \pi (1)}}$$\cdot$$e^{-(ln(x)- ln(95)-((.16)- (.24)^2 /2)(1))^2}\over 2(.24)^2(1)$

But then I am still left with the X. My question, is this just the 93 value that should be plugged in? Would this represent the probability of the price being below 93 after this time period? What if we wanted to find the probability that the price would close above this 93 (just 1 - this probability)?

## Answer by ricmarchao (score 5)

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

knowing that the log of the prices in a GBM follows the following normal distribution:

$$\operatorname{ln}(S_t) \sim N\left(\operatorname{ln}S_0 + T*\left( \mu - \frac{\sigma^2}{2} \right), \sigma^2 T \right) $$

You can create a normal distribution with these values and then check the CDF. Here is the python code:

```
from scipy.stats import norm; 
mu=0.16; sigma=0.24;S_0=95;T=1
my_var=sigma**2*T
my_norm=norm(np.log(S_0) + (mu-sigma**2/2)*T,np.sqrt(my_var))
my_norm.cdf(np.log(93))
```

from this normal distribution you get the CDF value for log(93) since you want to know the probability of values below 93, it is 0.26260905311083976

and this probability is time dependent if instead of 1 year it was for 6 months then $T$ would be 0.5.

And yes, the probability of the price being above 93 is the complementary of that, i.e. 1-0.26.

## Answer by Magic is in the chain (score 2)

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

Just like the normal density, this will give the probability density of x=93. So to find the probability of $P\left[ S\le 93\right]$, you will need to calculate the cumulative probability. See some discussion here. https://math.stackexchange.com/questions/2445900/probability-from-log-normal-distribution

Also try the Matlab free page here: https://uk.mathworks.com/help/stats/logncdf.html to get an understanding of the log normal probabilities, and then just look up the equivalent in whatever software you are using. Excel has a function as well.

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.