Quadratic Covariation
Here is a game you can play with any function of time. Chop the interval
[0, t] into tiny steps, take the increment over each step,
square it, and add all the squares up. Then shrink the steps and ask: what
does the total do?
For every smooth function you have ever met — polynomials, sines, exponentials — the total
collapses to zero. Over a step of length \Delta t
a differentiable f moves by
\Delta f \approx f'\,\Delta t, so its squared increment is of
order (\Delta t)^2: cut [0,t] into
n pieces and you are summing n terms of
size \sim 1/n^2 — a total of order 1/n,
which dies. Squaring punishes small increments brutally, and smooth increments are
very small.
Brownian motion breaks the game. Its increment over \Delta t has
size \sim \sqrt{\Delta t} — the square-root scaling you met when
you first built W — so the squared increment has size
\sim \Delta t, and n terms of size
t/n sum to something that refuses to die:
\sum_i \big(\Delta W_i\big)^2 \;\longrightarrow\; t \qquad \text{as the mesh } \|\Pi\| \to 0.
Not zero, not infinity: exactly t, for (almost)
every single path. This limit is the quadratic variation
[W]_t, and it is the sharpest roughness detector in
analysis: it reads 0 on anything smooth and reads the elapsed time
on Brownian noise. It is also the single reason stochastic calculus is not ordinary calculus
— every second-order term that classical calculus throws away
(\tfrac12 f''\,(dX)^2 in a Taylor expansion) survives when
(dX)^2 accumulates at rate dt. The
extra term in Itô's lemma is quadratic variation making itself felt.
Worked example: why [W]_t = t, honestly
The claim deserves a proof sketch, not just scaling folklore. Fix a partition
0 = t_0 < t_1 < \dots < t_n = t with mesh
\|\Pi\| = \max_i \Delta t_i, and study the random sum
S_\Pi = \sum_{i} \big(\Delta W_i\big)^2, \qquad \Delta W_i = W_{t_{i+1}} - W_{t_i}.
Step 1 — the mean is exactly t, for every partition.
Each increment is Gaussian, \Delta W_i \sim N(0, \Delta t_i), so
\mathbb{E}\big[(\Delta W_i)^2\big] = \Delta t_i. Summing:
\mathbb{E}[S_\Pi] = \sum_i \Delta t_i = t.
No limit needed yet — on average the squared wiggles always add up to the elapsed
time. The question is whether the randomness around that average survives the limit.
Step 2 — the variance dies with the mesh. For a Gaussian
Z \sim N(0, \sigma^2) the fourth moment is
\mathbb{E}[Z^4] = 3\sigma^4, so
\operatorname{Var}(Z^2) = 3\sigma^4 - \sigma^4 = 2\sigma^4.
Increments over disjoint intervals are independent, so variances add:
\operatorname{Var}(S_\Pi) = \sum_i 2\,(\Delta t_i)^2 \;\le\; 2\,\|\Pi\| \sum_i \Delta t_i = 2\,\|\Pi\|\,t \;\longrightarrow\; 0.
Step 3 — conclude. A random quantity whose mean is pinned at
t and whose variance tends to zero converges to
t in L^2. (Upgrading to almost-sure
convergence along refining partitions takes a Borel–Cantelli argument — that is the honest
fine print — but the L^2 statement already carries all the
intuition.) So
[W]_t = t.
Contrast the smooth case one more time, now quantitatively: if f
is continuously differentiable with |f'| \le M, then
\sum_i (\Delta f_i)^2 \le M^2 \sum_i (\Delta t_i)^2 \le M^2\,\|\Pi\|\,t \to 0.
Every finite-variation path — every trend, every drift, everything an ordinary integral can
build — has quadratic variation zero. Only genuine noise registers.
From one process to two
The
quadratic variation
[X]_t measures how much a single process wiggles. Its two-process
cousin, the quadratic covariation [X, Y]_t,
measures how much two processes wiggle together. For a partition
0 = t_0 < t_1 < \dots < t_n = t of [0, t]
it is the limit of cross-products of increments as the mesh shrinks:
[X, Y]_t = \lim_{\|\Pi\|\to 0} \sum_{i} \big(X_{t_{i+1}} - X_{t_i}\big)\big(Y_{t_{i+1}} - Y_{t_i}\big) = \lim_{\|\Pi\|\to 0} \sum_i \Delta X_i\,\Delta Y_i.
It is built exactly like a covariance, but pathwise and in time. Two immediate structural
facts, straight from the definition: it is symmetric
(\Delta X_i \Delta Y_i = \Delta Y_i \Delta X_i, so
[X,Y] = [Y,X]) and bilinear (the sum is linear in
each factor, so [aX + bZ,\, Y] = a[X,Y] + b[Z,Y]). Setting
Y = X recovers the quadratic variation
[X, X]_t = [X]_t.
The sign carries meaning, just as it does for covariance: if X and
Y tend to jump the same way over the same tiny intervals, the
products \Delta X_i\,\Delta Y_i are mostly positive and
[X,Y]_t climbs; if they jump opposite ways it falls; and if their
wiggles ignore each other the products cancel and the covariation flatlines at zero.
Worked example: [X]_t for a general Itô process
Take the general Itô process
dX_t = \mu_t\,dt + \sigma_t\,dW_t.
Its quadratic variation accumulates as (dX_t)^2, so expand the
square:
(dX_t)^2 = \mu_t^2\,(dt)^2 + 2\,\mu_t\sigma_t\,dt\,dW_t + \sigma_t^2\,(dW_t)^2.
Why the first two terms vanish — this is worth seeing once with orders of
magnitude, not just as a rule. Over n equal steps of size
\Delta t = t/n:
-
(dt)^2 terms: each is of size (\Delta t)^2 = t^2/n^2,
and n of them total \sim t^2/n \to 0.
Too small.
-
dt\,dW terms: each is of size
\Delta t \cdot \sqrt{\Delta t} = (\Delta t)^{3/2}, and
n of them (with random signs, cancelling further) total
\sim t^{3/2}/\sqrt{n} \to 0. Also too small.
-
(dW)^2 terms: each is of size \Delta t
— and n of them total \sim t. This one
survives, and by the previous section it survives as exactly
dt.
Only the diffusion term registers:
\boxed{\,d[X]_t = \sigma_t^2\,dt, \qquad [X]_t = \int_0^t \sigma_s^2\,ds.\,}
The drift \mu_t contributes nothing — you can
double it, reverse it, make it enormous, and [X]_t does not move.
Quadratic variation is completely blind to the trend and sees only the noise. A concrete
payoff: for geometric Brownian motion,
d(\log S_t) = \big(\mu - \tfrac{\sigma^2}{2}\big)dt + \sigma\,dW_t,
so
[\log S]_t = \sigma^2\,t.
The quadratic variation of the log-price is the squared volatility times time — which is
precisely why summing squared log-returns from market data estimates
\sigma^2. Hold that thought for the vignettes below.
The covariation of two Itô processes, line by line
Let two Itô processes be driven by the same Brownian motion
W:
dX_t = a^X\,dt + b^X\,dW_t, \qquad dY_t = a^Y\,dt + b^Y\,dW_t.
We want d[X, Y]_t, which by the definition is the leading part of
the cross-product of increments dX_t\,dY_t. Evaluate that product
with the box algebra
(dW_t)^2 = dt,
dt\,dW_t = 0,
(dt)^2 = 0 — each rule now justified by the order-of-magnitude
count above.
Step 1 — expand the product term by term:
dX_t\,dY_t = \big(a^X\,dt + b^X\,dW_t\big)\big(a^Y\,dt + b^Y\,dW_t\big),
= a^X a^Y\,(dt)^2 + a^X b^Y\,dt\,dW_t + b^X a^Y\,dW_t\,dt + b^X b^Y\,(dW_t)^2.
Step 2 — kill the small terms. Three of the four products are negligible by
the box algebra: (dt)^2 = 0 and both mixed
dt\,dW_t = 0. Only the last survives, with
(dW_t)^2 = dt:
dX_t\,dY_t = b^X b^Y\,(dW_t)^2 = b^X b^Y\,dt.
Step 3 — read off the covariation (its increment is this leading term):
\boxed{\,d[X, Y]_t = b^X b^Y\,dt, \qquad [X, Y]_t = \int_0^t b^X_s\,b^Y_s\,ds.\,}
Only the diffusion coefficients enter — the drifts a^X, a^Y
contribute nothing, because finite-variation (drift) parts are too smooth to accumulate
covariation. Setting X = Y = W (so
b^X = b^Y = 1) gives the headline special case
[W, W]_t = t.
Polarisation: covariation from variations alone
There is a slick way to define [X, Y] using only single-process
quadratic variations, the polarisation identity. It is the same algebra as
pq = \tfrac14[(p+q)^2 - (p-q)^2], or equivalently:
Step 1 — expand the quadratic variation of the sum, using bilinearity:
[X + Y,\, X + Y] = [X, X] + 2[X, Y] + [Y, Y].
Step 2 — solve for the cross term:
[X, Y] = \tfrac{1}{2}\Big([X + Y] - [X] - [Y]\Big).
So covariation is fully determined by the variations of X,
Y and their sum — no new machinery required. Run it on two
correlated processes to see it earn its keep: take
dX = \sigma_X\,dW^1 and
dY = \sigma_Y\,dW^2 with
dW^1 dW^2 = \rho\,dt. Then
[X] = \sigma_X^2\,t, [Y] = \sigma_Y^2\,t,
and d(X+Y) = \sigma_X dW^1 + \sigma_Y dW^2 gives
[X+Y] = (\sigma_X^2 + 2\rho\,\sigma_X\sigma_Y + \sigma_Y^2)\,t.
Polarisation hands back
[X, Y]_t = \tfrac12\big(\sigma_X^2 + 2\rho\,\sigma_X\sigma_Y + \sigma_Y^2 - \sigma_X^2 - \sigma_Y^2\big)\,t = \rho\,\sigma_X\sigma_Y\,t, \qquad d[X,Y]_t = \rho\,\sigma_X\sigma_Y\,dt.
— the exact stochastic analogue of
\operatorname{Cov}(P,Q) = \rho\,\sigma_P\sigma_Q, delivered per
unit time.
Independent Brownian motions: [W^1, W^2]_t = 0
Now let W^1, W^2 be independent Brownian motions. Their
covariation is the limit of \sum_i \Delta W^1_i\,\Delta W^2_i.
Step 1 — each summand has mean zero. Over the step
[t_i, t_{i+1}] the increments
\Delta W^1_i, \Delta W^2_i are independent and each mean-zero, so
\mathbb{E}\big[\Delta W^1_i\,\Delta W^2_i\big] = \mathbb{E}[\Delta W^1_i]\,\mathbb{E}[\Delta W^2_i] = 0\cdot 0 = 0.
Step 2 — the sum has mean zero and vanishing variance. The expected sum is
0, and a short computation shows its variance is
\sum_i (t_{i+1}-t_i)^2 \le \|\Pi\|\,t \to 0 as the mesh shrinks. A
mean-zero quantity whose variance goes to zero converges (in
L^2) to 0:
[W^1, W^2]_t = 0.
In box-algebra shorthand this is the rule dW^1_t\,dW^2_t = 0 for
independent drivers — the multidimensional twin of
(dW_t)^2 = dt. Notice the pattern of the whole argument — it is the
same mean-plus-vanishing-variance sketch that proved [W]_t = t,
just with a different mean.
For Itô processes X, Y the quadratic covariation
[X, Y]_t = \lim \sum_i \Delta X_i\,\Delta Y_i satisfies:
-
Symmetric and bilinear: [X, Y] = [Y, X] and
[aX + bZ,\, Y] = a[X, Y] + b[Z, Y].
-
Diffusion rule: if
dX = a^X dt + b^X dW and
dY = a^Y dt + b^Y dW (same W), then
d[X, Y]_t = b^X b^Y\,dt.
-
Self-covariation:
[W, W]_t = t.
-
Independent drivers: for independent Brownian motions
W^1, W^2,
[W^1, W^2]_t = 0.
-
Correlated drivers: for Brownian motions with correlation
\rho, [W^1, W^2]_t = \rho\,t.
The polarisation identity above is worth seeing once with every bracket expanded. Starting
from [X+Y] and using bilinearity and symmetry:
[X+Y] = [X+Y,\,X+Y] = [X,X] + [X,Y] + [Y,X] + [Y,Y] = [X] + 2[X,Y] + [Y],
and isolating the middle term gives
[X,Y] = \tfrac12([X+Y] - [X] - [Y]), exactly as claimed. This is
the stochastic echo of the variance identity
\operatorname{Cov}(P, Q) = \tfrac12(\operatorname{Var}(P+Q) - \operatorname{Var}(P) - \operatorname{Var}(Q)).
Between the two extremes — perfectly coupled (same W) and
independent ([W^1,W^2]=0) — sit correlated
Brownian motions with correlation \rho \in [-1, 1]. Their box
rule interpolates:
dW^1_t\,dW^2_t = \rho\,dt, \qquad\text{so}\qquad [W^1, W^2]_t = \rho\,t.
This is the seed of the multidimensional Itô lemma: when a function depends on
several correlated drivers, every pair contributes a cross-correction
f_{x_i x_j}\,d[X^i, X^j], and the matrix of these
\rho_{ij} values is what couples a basket of assets together in
multi-asset pricing.
The multiplication table: the working summary
Everything on this page compresses into one small table — the Itô multiplication
table, the practical engine that working quants and every stochastic-calculus
computation run on. To find d[X,Y] for any pair of Itô processes:
write out dX\,dY, multiply through, and evaluate every product of
differentials with:
\begin{array}{c|ccc} \times & dt & dW^1 & dW^2 \\ \hline dt & 0 & 0 & 0 \\ dW^1 & 0 & dt & \rho\,dt \\ dW^2 & 0 & \rho\,dt & dt \end{array}
In words: dt annihilates everything
((dt)^2 = 0, dt\,dW = 0); a driver
squared gives time ((dW)^2 = dt); two different drivers give their
correlation times time (dW^1 dW^2 = \rho\,dt, with
\rho = 0 when independent). Behind each entry is an honest limit
theorem — the mean-plus-vanishing-variance arguments above — but once proved, you never
re-derive them: you look them up in the table.
Mini-example, table-driven. Two stocks:
dS_1 = \mu_1 S_1\,dt + \sigma_1 S_1\,dW^1 and
dS_2 = \mu_2 S_2\,dt + \sigma_2 S_2\,dW^2, with
dW^1 dW^2 = \rho\,dt. Multiply, keep only the surviving cell:
d[S_1, S_2]_t = \sigma_1\sigma_2\,S_1 S_2\,dW^1 dW^2 = \rho\,\sigma_1\sigma_2\,S_1 S_2\,dt.
Every drift term hit a zero cell; the single dW^1 dW^2 cross term
carried the whole answer. That one-line computation is exactly what feeds the cross term of
the two-asset Itô lemma, the pricing of spread and basket options, and the covariance matrix
of a portfolio's instantaneous returns.
Three traps, in increasing order of expensiveness:
-
[W]_t = t is a path property, not an expectation.
\operatorname{Var}(W_t) = t is a statement about the
ensemble: average over many worlds at a fixed time. [W]_t = t
holds along each single path, with no averaging anywhere — it is deterministic and
sure, the same for every \omega. That a random path carries a
non-random fingerprint is the deep surprise; the two quantities agreeing numerically for
Brownian motion is a happy coincidence of the simplest case, not a definition. (For a
process with time-varying \sigma_t they genuinely differ:
[X]_t = \int_0^t \sigma_s^2\,ds is random when
\sigma is, while a variance is always a number.)
-
Smooth and finite-variation terms contribute exactly zero. Adding any
differentiable trend to a process — however violent — leaves its quadratic variation and
all its covariations untouched. Only the noise counts. If your computation of
d[X,Y] contains a drift coefficient, you have made an error.
-
Realized variance in markets is estimated quadratic variation — sampled
discretely. A desk computing \sum_i (\Delta \log S_i)^2
over a day is evaluating the defining sum at a finite mesh, not the limit: it is an
estimator of [\log S], with sampling error that shrinks
as the mesh refines — until market-microstructure noise (bid–ask bounce, discrete ticks)
starts polluting the very finest scales. The theory object is the clean limit; the traded
number is a finite sum.
(dW)^2 = dt appears in every derivation on a trading floor and in
no rigorous textbook — because as written it is nonsense (dW is
not a number you can square). What it abbreviates is this page: the sum of squared
increments converges to t, so wherever a squared differential
would appear inside an integral, it may be replaced by dt. One
line of shorthand, one limit theorem of content. It is arguably the most consequential
equation in quantitative finance, and it is technically never true — only its integrated
version is.
And it is not just notation: this page's object is literally a traded product.
A variance swap pays its holder the realized variance of a stock —
\tfrac{252}{n}\sum_i (\Delta \log S_i)^2, annualised squared
daily log-returns — in exchange for a fixed "strike" agreed up front. Realized-volatility
desks spend their days computing discretely sampled quadratic variation from tick data,
hedging it with strips of options, and arguing about exactly the estimation subtleties in
the Watch out! box above. The VIX index is a close cousin: it quotes the market's price for
the future quadratic variation of the S&P 500 over the next 30 days. When you
computed [\log S]_t = \sigma^2 t above, you priced the textbook
version of that payoff.
Coupled versus independent, seen
Below are two pairs of Brownian paths, and the whole page in one picture. The top pair is
coupled: both processes are driven by the same
W, so over every tiny interval their increments are identical and
each cross-product is a square, \Delta X_i\,\Delta Y_i = (\Delta W_i)^2 > 0
— a sum of relentlessly positive terms that accumulates to exactly
[X,Y]_t = t. The other pair is independent: increment
signs agree and disagree at random, the products cancel in the long run, and the covariation
flatlines ([W^1,W^2]_t = 0).
Refresh for a fresh \omega and watch the geometry: the coupled
pair moves in perfect lockstep, every jag mirrored, while the independent paths wander with
no memory of each other — sometimes drifting the same way for a stretch (exactly why a
finite-sample covariation estimate is noisy), but never systematically. Correlated
drivers with 0 < \rho < 1 would sit between these extremes.