Trading Dev AcademyFree quant education

Free lesson · Stochastic calc

Before Itô: random walks, Brownian motion and information

Open interactive lessonPractice calculationsExplore labs

Start with the idea

  • For standard Brownian motion, uncertainty grows with the length of the interval. Variance grows in proportion to time; standard deviation grows with its square root.
Symbols, units & horizon
  • W_t: standard Brownian value at time t
  • h: time-step duration
  • ΔW_k: Brownian increment over step k
  • Z_k: independent standard normal draw
  • N(0,1): normal distribution with zero mean and unit variance
  • n: number of steps
  • T=nh: elapsed time
  • Var: variance
  • SD: standard deviation, the square root of variance
  • W has square-root-time units and Z is dimensionless
  • 𝓕_t: information available through t
  • ∼: distributed according to

When and why to use this

Use increment scaling and information timing before interpreting any diffusion simulation. This prepares the GBM, Itô and stochastic-volatility lessons that follow.

Start here · the same idea in everyday words

Technical termEveryday meaningConcrete example
StochasticContaining randomness.A random-walk update includes a newly sampled shock.
IncrementA change over one interval.The difference between a process at the start and end of a quarter-year interval is its increment.
Non-anticipatingUsing only information available before the next unknown outcome.Choose an exposure before seeing the next price shock.

Unpack a technical sentence

Technical wording: Brownian increments have variance proportional to elapsed time.

Read it as: For standard Brownian motion, uncertainty grows with the length of the interval. Variance grows in proportion to time; standard deviation grows with its square root.

A slower worked example · one step at a time

  1. Measure time in years. Standard Brownian motion has increments with mean zero and variance equal to the elapsed years. Its increment unit is the square root of a year.
  2. Over a quarter year, the increment variance is .25 years, and its standard deviation is the square root of .25, or .5 square-root-years.
  3. A standard normal draw comes from a bell-shaped distribution with mean zero and standard deviation one. Multiply that draw by .5 to simulate an increment over this interval. A draw of −1 gives −.5; a draw of +1 gives +.5. These two selected draws illustrate scaling, not the whole normal distribution.
  4. Two independent quarter-year increments have total variance .25+.25=.5 years. The total standard deviation is the square root of .5, about .707107, not .5+.5=1.
  5. A Brownian increment is not itself a dollar price move. A price model must specify how it scales and uses that shock.
Self-assessed: Why does doubling elapsed time not double Brownian standard deviation?

Variance doubles for independent increments. Standard deviation is the square root of variance, so it increases by the square root of two.

Suggested preparation: ordinary derivatives, integrals, partial derivatives, and probability.

  • Standard Brownian motion starts at zero, has independent Gaussian increments, and an increment over length h has mean zero and variance h.
  • Its typical scale is therefore √h, not h.
  • The paths are almost surely nowhere differentiable; ordinary velocity intuition fails.
  • A filtration is the information available through time.
  • An adapted process uses current and past information, and an Itô trading integrand must satisfy the relevant non-anticipation and integrability requirements.
  • This is a mathematical version of not trading on future shocks.
ΔWk=hZk,Zk∼𝒩(0,1),WT=∑k=1nΔWk,Var⁡(WT)=nh=T
Calculus: derivation and arithmetic

Before Itô: random walks, Brownian motion and information

  1. Multiplying a unit-variance Z by √h gives variance h, since variance scales by the square of the multiplier.
  2. Independent increments have additive variances. Summing n increments therefore gives variance nh=T and mean zero.
  3. If you used hZ instead, the total variance would be nh²=Th, which tends to zero as the grid is refined. That scaling would remove the intended randomness.
Work it by hand

With T=1 and n=100, each increment has SD .1 and variance .01. The sum has variance 1 and SD 1, not SD 10.

Architecture pseudocode

from random import Random
from math import sqrt

def brownian_path(horizon,steps,seed=7):
    if horizon<0 or not isinstance(steps,int) or steps<1: raise ValueError("Valid horizon and positive steps required")
    rng=Random(seed)
    h=horizon/steps
    path=[0.0]
    for _ in range(steps): path.append(path[-1]+sqrt(h)*rng.gauss(0,1))
    return path

print(brownian_path(1,4))

# Replay the slower, synthetic example above. Units are stated in its steps.
def plain_language_example():
    from math import exp, e  # Standard library; no extra dependency.
    return {
        "sd_quarter": .25**.5,
        "negative_draw": (.25**.5)*(-1),
        "combined_variance": .25+.25,
        "combined_sd": (.25+.25)**.5,
    }

print(plain_language_example())

An analogy to remember

Many tiny, independent pushes can accumulate into a persistent random displacement even as each individual push gets smaller. Their variances add; their signed values do not all push in the same direction.

How this becomes a building block

Brownian increments are a noise component inside a diffusion model. Adding a drift and state-dependent scale produces an SDE. A random walk is not itself a complete market model; jumps, microstructure and changing volatility may require other assumptions.

Python implementation

Self-contained teaching example. Python 3.10+; dependencies and input conventions are shown in the code and notation. Run in your own Python environment.

from random import Random
from math import sqrt

def brownian_path(horizon,steps,seed=7):
    if horizon<0 or not isinstance(steps,int) or steps<1: raise ValueError("Valid horizon and positive steps required")
    rng=Random(seed)
    h=horizon/steps
    path=[0.0]
    for _ in range(steps): path.append(path[-1]+sqrt(h)*rng.gauss(0,1))
    return path

print(brownian_path(1,4))

# Replay the slower, synthetic example above. Units are stated in its steps.
def plain_language_example():
    from math import exp, e  # Standard library; no extra dependency.
    return {
        "sd_quarter": .25**.5,
        "negative_draw": (.25**.5)*(-1),
        "combined_variance": .25+.25,
        "combined_sd": (.25+.25)**.5,
    }

print(plain_language_example())

Continue learning

Stochastic Calculus — all lessons
  1. Start with one random step before continuous noise
  2. Before Itô: random walks, Brownian motion and information
  3. Itô integration and quadratic variation
  4. SDEs, Euler–Maruyama and an Ornstein–Uhlenbeck example
  5. Geometric Brownian motion: the model under Black–Scholes
  6. Itô's lemma: why gamma exists
  7. Black–Scholes and delta hedging in production
  8. Put–call parity and a full Greek P&L budget

Quantitative finance and development glossary · Python resources and libraries · Research sources and limitations