Stochastic Processes
Table of Contents
This is the hub note for stochastic processes as a modelling tool. Each linked note is a single focused concept; start here and follow the links.
Summary
A stochastic process is a random variable that evolves over time
according to a rule combining a deterministic drift with a random shock.
Two pieces of stochastic calculus underpin every process in this cluster:
the Wiener process (the
continuous-time random walk supplying that shock) and
Ito's lemma (the chain rule
that lets you change variables — e.g. from a rate to a bond price —
without leaving continuous time). Everything else in this cluster is one
of six concrete processes built on those two foundations, split into two
families: price processes, which model a quantity that can wander
without bound, and mean-reverting processes, which model a quantity
that is pulled back toward a long-run level. The first place these
processes are put to use in ORE Studio is
ores.analytics.quant's
synthetic market data generators (FX spot, equity, and short-rate paths)
— but that is one consumer of a general-purpose toolkit, not what this
cluster is fundamentally about.
Detail
Foundations
- Random Walk — the discrete-time process of summing independent steps; the Wiener process is its continuous-time limit.
- Markov Property — the "no memory" property every process in this cluster has: the next state depends only on the current one.
- Wiener Process — continuous-time Brownian motion, \(dW\), the source of randomness every process below is driven by.
- Ito's Lemma — the stochastic chain rule, needed to derive e.g. a bond-price SDE from a short-rate SDE.
Price processes (unbounded)
- Arithmetic Brownian Motion —
additive increments (
price +increment=); implemented byarithmetic_gaussian_mixture_model_process. - Geometric Brownian Motion —
multiplicative, log-normal increments (
price *exp(log_return)=); implemented bygaussian_mixture_model_process. Both generalise their single-Gaussian textbook form to a K-component Gaussian mixture, reproducing fat tails and volatility clustering a single Normal shock cannot — see Volatility clustering and GARCH models for the companion discrete-time picture of that same fat-tail problem. Currently consumed for FX spot and equity price generation.
Mean-reverting processes
Mean reversion is the opposite behaviour to the unbounded wandering of the price processes above: instead of a random shock accumulating without limit, a mean-reverting process has a built-in pull back toward a long-run level whenever it drifts away — the further it strays, the harder it gets pulled back. Nothing stops it wandering away again on the very next tick, so the path still looks jittery moment to moment; what mean reversion changes is the long-run behaviour, not the short-run randomness — a mean-reverting path keeps circling back toward its target level instead of drifting off to arbitrarily large or small values the way an unbounded price process can. This is the natural shape for quantities that are anchored by some external equilibrium force (a central bank's policy target for an interest rate, for instance), whereas a price process is the natural shape for quantities with no such anchor at all.
- Ornstein-Uhlenbeck Process —
the general mean-reverting building block, \(dX = \kappa(\theta-X)\,dt +
\sigma\, dW\); implemented by
ornstein_uhlenbeck_process. - Vasicek Process — the OU
process applied to a short rate with a constant long-run level;
implemented by
vasicek_process, a thin wrapper composinghull_white_process. - Hull-White Process —
Vasicek generalised to a piecewise-constant, time-varying mean-reversion
level \(\theta(t)\), letting the process fit an observed initial term
structure exactly; implemented by
hull_white_process. - Cox-Ingersoll-Ross (CIR)
Process — Vasicek with a \(\sigma\sqrt{r}\) volatility term that keeps
the rate non-negative, at the cost of a non-Gaussian (non-central
chi-squared) transition density; implemented by
cox_ingersoll_ross_process.
Currently all four are consumed as short-rate models; the underlying maths applies to any quantity that reverts to a long-run level, not just a rate.
How the mean-reverting family relates
Vasicek, Hull-White, and CIR are not three independent models — they are three points on one design axis, all sharing the OU drift shape \(\kappa(\text{target} - X)\):
| Process | Volatility term | Mean-reversion target | Can go negative? |
|---|---|---|---|
| OU | \(\sigma\) (const.) | constant \(\theta\) | yes |
| Vasicek | \(\sigma\) (const.) | constant \(\theta\) | yes |
| Hull-White | \(\sigma\) (const.) | time-varying \(\theta(t)\) | yes |
| CIR | \(\sigma\sqrt{r}\) | constant \(\theta\) | no |
Vasicek is literally the \(\theta(t) = \text{const}\) special case of Hull-White —
vasicek_process composes hull_white_process rather than
reimplementing it. CIR cannot be reached from Hull-White by any
parameter substitution: its non-negativity comes from a genuinely
different volatility term, which is also why its exact transition
requires the Poisson-mixture-of-central-chi-squared construction
described in its own atomic doc, rather than the closed-form Gaussian
update the other three share.
Current consumer: synthetic data generation
ores::analytics::quant::service::process_factory constructs the
concrete process an ir_curve_generation_config or
market_data_generation_config names, behind the common
IStochasticProcess interface every process implements — the
generation loop that drives next() on whichever process was
configured does not need to know which one it got. This is the first,
not the only, place these processes are expected to be used in ORE
Studio.
See also
- ORE Studio — the system these processes are currently used in.
- Probability measures: P (real-world) and Q (risk-neutral) — these processes are calibrated/sampled under the real-world \(P\) measure for data generation, as distinct from the $Q$-measure dynamics ORE's pricing engines use.
- Volatility clustering and GARCH models — the discrete-time counterpart to the Gaussian-mixture fat-tail problem the price processes address.
Further reading
- Wikipedia: Stochastic process.