Geometric Brownian motion
A geometric Brownian motion (GBM) (also known as exponential Brownian motion) is a continuous-time stochastic process in which the logarithm of the randomly varying quantity follows a Brownian motion (also called a Wiener process) with drift. It is an important example of stochastic processes satisfying a stochastic differential equation (SDE); in particular, it is used in mathematical finance to model stock prices in the Black–Scholes model.
Technical definition: the SDE
A stochastic process St is said to follow a GBM if it satisfies the following stochastic differential equation (SDE):
where is a Wiener process or Brownian motion, and ('the percentage drift') and ('the percentage volatility') are constants.
The former is used to model deterministic trends, while the latter term is often used to model a set of unpredictable events occurring during this motion.
Solving the SDE
For an arbitrary initial value S0 the above SDE has the analytic solution (under Itô's interpretation):
where is the quadratic variation of the SDE.
When , converges to 0 faster than , since . So the above infinitesimal can be simplified by
Plugging the value of in the above equation and simplifying we obtain
Taking the exponential and multiplying both sides by gives the solution claimed above.
They can be derived using the fact that is a martingale, and that
The probability density function of is:
When deriving further properties of GBM, use can be made of the SDE of which GBM is the solution, or the explicit solution given above can be used. For example, consider the stochastic process log(St). This is an interesting process, because in the Black–Scholes model it is related to the log return of the stock price. Using Itô's lemma with f(S) = log(S) gives
It follows that .
This result can also be derived by applying the logarithm to the explicit solution of GBM:
Taking the expectation yields the same result as above: .
Simulating sample paths
1 # Python code for the plot 2 3 import numpy as np 4 import pandas as pd 5 import matplotlib.pyplot as plt 6 7 mu = 1 8 n = 50 9 dt = 0.1 10 x0 = 100 11 x = pd.DataFrame() 12 np.random.seed(1) 13 14 for sigma in np.arange(0.8, 2, 0.2): 15 step = np.exp((mu - sigma ** 2 / 2) * dt) * np.exp( 16 sigma * np.random.normal(0, np.sqrt(dt), (1, n)) 17 ) 18 temp = pd.DataFrame(x0 * step.cumprod()) 19 x = pd.concat([x, temp], axis=1) 20 21 x.columns = np.arange(0.8, 2, 0.2) 22 plt.plot(x) 23 plt.legend(x.columns) 24 plt.xlabel("t") 25 plt.ylabel("x") 26 plt.title("Realizations of Geometric Brownian Motion with different variances\n mu=1") 27 plt.show()
GBM can be extended to the case where there are multiple correlated price paths.
Each price path follows the underlying process
where the Wiener processes are correlated such that where .
For the multivariate case, this implies that
Use in finance
Some of the arguments for using GBM to model stock prices are:
- The expected returns of GBM are independent of the value of the process (stock price), which agrees with what we would expect in reality.
- A GBM process only assumes positive values, just like real stock prices.
- A GBM process shows the same kind of 'roughness' in its paths as we see in real stock prices.
- Calculations with GBM processes are relatively easy.
However, GBM is not a completely realistic model, in particular it falls short of reality in the following points:
- In real stock prices, volatility changes over time (possibly stochastically), but in GBM, volatility is assumed constant.
- In real life, stock prices often show jumps caused by unpredictable events or news, but in GBM, the path is continuous (no discontinuity).
In an attempt to make GBM more realistic as a model for stock prices, one can drop the assumption that the volatility () is constant. If we assume that the volatility is a deterministic function of the stock price and time, this is called a local volatility model. If instead we assume that the volatility has a randomness of its own—often described by a different equation driven by a different Brownian Motion—the model is called a stochastic volatility model.
- Ross, Sheldon M. (2014). "Variations on Brownian Motion". Introduction to Probability Models (11th ed.). Amsterdam: Elsevier. pp. 612–14. ISBN 978-0-12-407948-9.
- Øksendal, Bernt K. (2002), Stochastic Differential Equations: An Introduction with Applications, Springer, p. 326, ISBN 3-540-63720-6
- Hull, John (2009). "12.3". Options, Futures, and other Derivatives (7 ed.).
- Geometric Brownian motion models for stock movement except in rare events.
- R and C# Simulation of a Geometric Brownian Motion
- Excel Simulation of a Geometric Brownian Motion to simulate Stock Prices
- "Interactive Web Application: Stochastic Processes used in Quantitative Finance".