“Explain what a martingale is.” It comes up constantly in quant interviews, and it’s a question where the gap between a memorised answer and a real one is obvious to anyone listening.

The memorised answer: “a process whose expected future value equals its current value.” Correct, and incomplete — it misses the single most important word, and it doesn’t explain why the concept sits at the centre of derivatives pricing. Here’s the version that shows you understand it.

The definition, with the word that matters

A martingale is a stochastic process whose expected next value, given everything you know so far, equals its current value:

    \[\mathbb{E}\left[X_t \mid \mathcal{F}_s\right] = X_s \quad \text{for } s < t\]

The phrase that separates a good answer from a weak one is given everything you know so far — the conditioning on \mathcal{F}_s, the information available up to time s. A martingale isn’t just “flat on average”. It’s flat on average no matter what has already happened. Whatever path you’ve taken to get to today, your best forecast of tomorrow is exactly where you are now.

The intuition people reach for is a fair game. If you’re gambling and your wealth is a martingale, then knowing the entire history of the game tells you nothing about whether you’ll win or lose next — your expected future wealth is your current wealth, always.

Martingale, sub, super

Three cases, and interviewers like to check you know the direction of the inequalities:

  • Martingale: \mathbb{E}[X_t \mid \mathcal{F}_s] = X_s. Fair game. No drift.
  • Submartingale: \mathbb{E}[X_t \mid \mathcal{F}_s] \geq X_s. Drifts up. A favourable game.
  • Supermartingale: \mathbb{E}[X_t \mid \mathcal{F}_s] \leq X_s. Drifts down. An unfavourable game.

The naming feels backwards — “super” drifts down — but there’s a logic: a supermartingale is above where it’s expected to go, so it tends to fall. A stock with positive expected return is a submartingale; your wealth at a casino is a supermartingale.

See it: a fair walk versus a biased one

The cleanest example is a random walk. A symmetric one (equal chance up or down) is a martingale; add any bias and it becomes a sub- or supermartingale.

import numpy as np
np.random.seed(1)
n_paths, n_steps = 100_000, 100

# fair walk: +1 or -1 with equal probability
steps_fair = np.random.choice([-1, 1], size=(n_paths, n_steps))
walk_fair  = steps_fair.cumsum(axis=1)

# biased walk: 55% chance of +1
steps_bias = np.where(np.random.random((n_paths, n_steps)) < 0.55, 1, -1)
walk_bias  = steps_bias.cumsum(axis=1)

print(f"Fair walk   E[X_100] = {walk_fair[:,99].mean():+.3f}")   # ~0
print(f"Biased walk E[X_100] = {walk_bias[:,99].mean():+.3f}")   # ~10
Fair walk   E[X_100] = +0.004
Biased walk E[X_100] = +10.006

The fair walk stays at zero on average — martingale. The biased walk drifts up to +10 — submartingale. So far this only checks the unconditional mean, which is the weaker property.

The property that actually defines it

Here’s the test that captures the real definition — the conditioning. Group the fair-walk paths by their value at step 50, then ask: what’s their average value at step 100? If it’s a martingale, the answer must be the step-50 value itself, whatever that value was.

X50, X100 = walk_fair[:,49], walk_fair[:,99]

for level in [-10, 0, 10]:
    mask = np.abs(X50 - level) < 1e-9
    print(f"paths at X_50={level:+d}: "
          f"E[X_100 | X_50] = {X100[mask].mean():+.2f}")
paths at X_50=-10: E[X_100 | X_50] = -9.98
paths at X_50= +0: E[X_100 | X_50] = +0.04
paths at X_50=+10: E[X_100 | X_50] = +9.94

This is the definition in action. Paths that happened to be at -10 halfway through average -10 at the end. Paths at +10 average +10. The process doesn’t “want” to return to zero or continue a trend — from wherever it is, its expected future is exactly where it is. That memorylessness is what \mathbb{E}[X_t \mid \mathcal{F}_s] = X_s actually says, and it’s what the unconditional mean alone would miss.

Why quants care: pricing is a martingale statement

This is the part that turns a textbook definition into the reason the concept matters, and it’s what a good interviewer is really fishing for.

The entire framework of arbitrage-free pricing is a martingale statement. The First Fundamental Theorem of Asset Pricing says a market is arbitrage-free if and only if there’s a measure under which discounted asset prices are martingales. That measure is the risk-neutral measure.

So “no arbitrage” and “discounted prices are martingales” are the same statement. If the discounted stock weren’t a martingale under the pricing measure, it would have predictable drift you could trade against — a free lunch.

You can check the martingale property of the discounted stock directly:

S0, r, sigma, T = 100.0, 0.05, 0.20, 1.0
Z  = np.random.standard_normal(500_000)
ST = S0*np.exp((r - 0.5*sigma**2)*T + sigma*np.sqrt(T)*Z)

print(f"E[e^-rT S_T] = {(np.exp(-r*T)*ST).mean():.3f}")  # should be S0
E[e^-rT S_T] = 100.058

The discounted stock averages back to today’s price of 100. That’s the martingale property holding under the risk-neutral measure — and it’s why option pricing reduces to taking an expectation. Once discounted prices are martingales, today’s price of any derivative is just the discounted expected payoff. No drift to estimate, no risk premium to guess.

Follow-ups you should be ready for

  • “Is Brownian motion a martingale?” Yes — standard Brownian motion has no drift, so \mathbb{E}[W_t \mid \mathcal{F}_s] = W_s. Add a drift and it stops being one.
  • “Is the stock price a martingale?” Not under the real-world measure — it has positive expected return, so it’s a submartingale. The discounted stock is a martingale under the risk-neutral measure. Getting both qualifiers right is the whole answer.
  • “What’s the martingale representation theorem?” Loosely: any martingale (under a Brownian filtration) can be written as a stochastic integral against Brownian motion. In finance, that integrand is the hedge — it’s the mathematical reason a claim can be replicated by trading.
  • “What about a martingale that isn’t a fair game in practice?” Watch for the difference between a true martingale and a local martingale — the distinction matters for whether certain “arbitrage-free” models actually are, and it’s where the Novikov condition earns its keep.

The answer that stands out

A martingale is a process whose expected future value, conditional on all information so far, equals its current value — a fair game with no predictable drift from any starting point. Quants care because arbitrage-free pricing is a martingale statement: prices admit no free lunch exactly when discounted assets are martingales under the risk-neutral measure, which is what lets you price any derivative as a discounted expectation.

Define it and you pass. Connect it to no-arbitrage and you’ve answered the question they were actually asking.

If you want to see this built rather than recited — the filtration, the martingale property, the risk-neutral measure and the pricing that falls out of it — that’s the foundation of Risk-Neutral Valuation, worked from the ground up.


Get the Quant Reference Card — four pages covering stochastic calculus, measure change, the models you’ll actually meet, discretisation, rates, credit and XVA, with the practitioner notes that don’t make it into textbooks. Free.