Geometric Brownian Motion

Table of Contents

Summary

Geometric Brownian Motion (GBM) models a price that moves multiplicatively: its percentage change over a tick, not its absolute change, is normally distributed. This is what keeps a GBM price strictly positive no matter how far it evolves — a crucial property an asset price must have that plain (additive) Brownian motion, its arithmetic counterpart, does not. ores::analytics::quant::service::gaussian_mixture_model_process implements GBM, generalised from a single Gaussian shock to a K-component Gaussian mixture, for FX spot and equity price generation.

Layperson's mental model

Compound interest, but random: instead of a fixed interest rate applied every period, GBM applies a random percentage change each tick. That "percentage, not absolute" framing is the whole idea — a price of 10 going up 5% moves by 0.50; a price of 1,000 going up that same 5% moves by 50. Because it is always a percentage being applied, no matter how unlucky the run of draws, the price can shrink toward zero but can never actually cross it or go negative — there's no such thing as a "-150% return" wiping it out completely.

// Simplified for clarity: the real code guards sd == 0 (a degenerate
// mixture component) separately, since std::normal_distribution asserts
// on a zero stddev.
const double log_return = std::normal_distribution<double>(mean, sd)(rng_);
price_ *= std::exp(log_return);      // a random percentage change, applied

Detail

The SDE and its discretisation

GBM follows:

\begin{equation} dS = \mu S\, dt + \sigma S\, dW \end{equation}

i.e. both the drift and the diffusion scale with the current price level \(S\), not a fixed amount — a price at 100 experiences ten times the absolute wiggle of a price at 10, for the same percentage volatility \(\sigma\). Applying Ito's lemma to \(\log S\) removes the state-dependence and yields the exact, non-approximated per-tick update gaussian_mixture_model_process actually implements:

\begin{equation} S_{t+1} = S_t \exp(\text{log\_return}), \quad \text{log\_return} \sim \left(\mu - \tfrac{\sigma^2}{2}\right) dt + \sigma \sqrt{dt}\, Z \end{equation}

The \(-\sigma^2/2\) term is itself a direct consequence of Ito's lemma applied to \(\log S\) — without it, the expected log-price would drift at \(\mu\), but the expected price would not, since \(E[e^X] \ne e^{E[X]}\) for a random \(X\); the correction restores \(E[S_t] = S_0 e^{\mu t}\).

Why multiplicative, not additive

Because the percentage change, not the absolute change, is what is normally distributed, \(S\) can never reach zero or go negative: reaching zero would require an infinitely negative percentage change, which has zero probability under a Normal distribution. This single property is the entire reason GBM, not arithmetic Brownian motion, is the standard choice for modelling a traded asset price.

The Gaussian-mixture generalisation

A single Gaussian shock per tick produces returns with thinner tails and less clustering than real market data exhibits. gaussian_mixture_model_process draws each tick's log_return from a K-component Gaussian mixture instead of one Normal distribution — a weighted combination of several Normal distributions with different means and variances — which reproduces the fat tails and volatility clustering real FX and equity returns show, without abandoning the exact log-normal update above. See Volatility clustering and GARCH models for the discrete-time family of models addressing this same fat-tail problem by a different route (a recurrence relation on the variance itself, rather than a mixture of shocks).

See also

Further reading

  • Black, F., & Scholes, M. (1973). "The Pricing of Options and Corporate Liabilities." Journal of Political Economy, 81(3), 637-654. The paper that made GBM the standard model for equity price dynamics, as the underlying assumption of the Black-Scholes option pricing formula.
  • Merton, R. C. (1973). "Theory of Rational Option Pricing." The Bell Journal of Economics and Management Science, 4(1), 141-183. Extended and rigorised the Black-Scholes framework, sharing the 1997 Nobel Memorial Prize in Economic Sciences with Scholes for this work (Black had died in 1995 and was ineligible).
  • Hull, J. C. (2018). Options, Futures, and Other Derivatives (10th ed.). Pearson. Chapter 15 gives the standard textbook derivation of the log-normal update this document's discretisation matches.
  • Wikipedia: Geometric Brownian motion.

Emacs 29.3 (Org mode 9.6.15)