Calculating Stock Price Probabilities over a Range with a Lognormal Model
Summary
The document discusses a lognormal transition density for a stock price under Black–Scholes assumptions and asks how to calculate the chance that the future price falls within a range. It highlights a common discretization error: density values at individual price points are not probabilities that can be summed without accounting for the price interval represented by each value. A continuous random variable has zero probability of landing at any one exact price.
The answers recommend calculating interval probabilities from cumulative probabilities at the range boundaries. Equivalently, density values can be weighted by the mesh width when approximating an integral, with the total also affected by truncating the price range. The example illustrates why finer spacing can increase a naive sum of density values. These conclusions rely on the assumed lognormal model; the document gives no empirical validation of that model for actual stock prices.
Key ideas
- A continuous stock-price distribution assigns zero probability to any exact price point.
- A probability density must be integrated over a price interval to obtain a range probability.
- Subtracting cumulative probabilities at the interval boundaries gives the probability of ending within that range.
- A discrete approximation should account for its mesh width, and truncating the range can leave probability mass out.
Tags
Full text
# Probability of Closing Stock Price Over a Defined Period
# Probability of Closing Stock Price Over a Defined Period
$$ p(S,t;S',t') = \frac{1}{\sigma S'\sqrt{2\pi (t'-t)}} \exp\left(-\frac{(\log(S/S') + (\mu-1/2\sigma^2)(t'-t))^2}{2\sigma^2(t'-t)}\right) $$
I found this equation when I was reading "Paul Wilmots on Quantitative Finance" which calculates the probability that of a stock price ending/landing on a particular price (S'). So if the stock price is 100 USD and the volatility is 30%, the probability the stock closes at 105 USD, exactly 30 days from now, according to the formula, is 3.850%.
When I tried to use the formula for different strikes S' (95 96 97 98 99 100 101 102 103..), integer wide, and a fixed 30 days, the probabilities at those respective strikes summed to exactly 1, as it should. However when I used a fractional spacing/mesh (100 100.1 100.2 100.3 ...) I the probabilities summed more than 1. And that makes sense I guess? If the probability that a stock worth a 100 USD now will close at 105 USD, 30 days from now, is 3.85% than it shouldn't vary too far from the the probability of a 100 USD stock closing at 105.10 USD 30days, the two numbers are within the vicinity of one another by 10 cents.
But is there a way to normalize the formula such that if I wanted to know the probability that a stock will land within the interval [105.00, 106.00], I would not be getting probabilities that sum to more than 1?
## Answer by phdstudent (score 3)
https://quant.stackexchange.com/a/18796
That formula actually does not make much sense, given that for a continuous random variable the probability of any given point is zero.
Assuming a Black-Scholes world you are better of by doing:
$P(S_T>S_T^*)=N(d_2)$ where $d_2$ is the standard black-scholes term.
From this it is straightforward to compute $P(S_T^{-}<S_T<S_T^+)$.
## Answer by ocstl (score 1)
https://quant.stackexchange.com/a/19228
Actually, the probabilities in the first case will not sum to exactly 1, since you are truncating the distribution (S' is unbounded above), but will be arbitrarily close.
To get the 'right' cumulative probability, you have to adjust for the step size; so, in the first case, you were assigning a weight of 1. In the second case, using a weight of 0.1 will yield a cumulative probability arbitrarily close to 1, given the truncation.
Alternatively (as pointed out by volcompt), since this formula assumes a log-normal distribution, it seems much simpler to use the difference between the CDF on the returns: $P(S' \leq 106) - P(S' \lt 105)$.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.