CONTENTS

Solution: Itô vs. Ordinary Chain Rule — Where They Diverge Numerically

Part 1

import numpy as np rng = np.random.default_rng(0) mu, sigma, T = 0.10, 0.40, 1.0 N = 200_000 W_T = rng.normal(0.0, np.sqrt(T), size=N) log_ret = (mu - 0.5 * sigma**2) * T + sigma * W_T # exact distribution of ln(S_T/S_0) under GBM print(f"Empirical mean of ln(S_T/S_0): {log_ret.mean():.4f}") print(f"Naive (A) : {mu * T:.4f}") print(f"Itô-correct (B) : {(mu - 0.5*sigma**2) * T:.4f}") # Empirical mean of ln(S_T/S_0): 0.0199 # Naive (A) : 0.1000 # Itô-correct (B) : 0.0200

The empirical mean 0.02\approx 0.02 matches snippet B to three decimals. Snippet A is off by 0.080.08 — the full 12σ2T=0.08\tfrac{1}{2}\sigma^2 T = 0.08 Itô correction.

Part 2

From GBM: ST/S0=exp((μ12σ2)T+σWT)S_T/S_0 = \exp((\mu - \tfrac{1}{2}\sigma^2)T + \sigma W_T). Taking expectations using the Gaussian MGF E[eσWT]=eσ2T/2\mathbb{E}[e^{\sigma W_T}] = e^{\sigma^2 T/2}:

E[ST/S0]=e(μσ2/2)Teσ2T/2=eμT\mathbb{E}[S_T/S_0] = e^{(\mu - \sigma^2/2)T}\cdot e^{\sigma^2 T/2} = e^{\mu T}
So E[ST/S0]1=eμT10.1052\mathbb{E}[S_T/S_0] - 1 = e^{\mu T} - 1 \approx 0.1052 for μT=0.1\mu T = 0.1. The naive-vs-correct gap is tiny for the arithmetic return because the two 12σ2\tfrac{1}{2}\sigma^2 terms cancel — this is the coincidence that sometimes fools people into thinking GBM drift is μ\mu everywhere.
emp_arith = np.exp(log_ret).mean() - 1 print(f"Empirical arith return E[S_T/S_0] - 1: {emp_arith:.4f}") print(f"Theoretical e^{{mu T}} - 1 : {np.exp(mu*T) - 1:.4f}") # Empirical arith return E[S_T/S_0] - 1: 0.1057 # Theoretical e^{mu T} - 1 : 0.1052

The lesson: the drift of log-return is μ12σ2\mu - \tfrac{1}{2}\sigma^2; the drift of arithmetic return is μ\mu. Naive calculus conflates them.

Part 3

The naive drift is μ\mu; the Itô drift is μ12σ2\mu - \tfrac{1}{2}\sigma^2. Naive is within 10% of Itô iff:

μ(μ12σ2)μ12σ2=12σ2μ12σ20.10\frac{|\mu - (\mu - \tfrac{1}{2}\sigma^2)|}{|\mu - \tfrac{1}{2}\sigma^2|} = \frac{\tfrac{1}{2}\sigma^2}{\mu - \tfrac{1}{2}\sigma^2} \le 0.10

Rearranging: 12σ20.1(μ12σ2)\tfrac{1}{2}\sigma^2 \le 0.1(\mu - \tfrac{1}{2}\sigma^2), so 12σ2(1+0.1)0.1μ\tfrac{1}{2}\sigma^2(1 + 0.1) \le 0.1\mu, giving σ20.2μ/1.10.0182\sigma^2 \le 0.2\mu/1.1 \approx 0.0182, i.e. σ0.135\sigma \le 0.135.

Interpretation. For low-vol assets (bonds, index futures) the Itô correction is small — about 12(0.10)2=0.5%\tfrac{1}{2}(0.10)^2 = 0.5\% per year. For high-vol assets (single stocks, crypto, options on vol) the correction dominates: at σ=40%\sigma = 40\% the correction is 8%8\% per year; at σ=80%\sigma = 80\% it is 32%32\% per year — larger than the drift itself. Options pricing is entirely about volatility, so option models that drop the Itô correction are wrong at the order of the quantity they are trying to price.

Part 4 (extension)

import numpy as np import matplotlib.pyplot as plt rng = np.random.default_rng(0) mu, sigma, T = 0.10, 0.80, 1.0 N = 100_000 W_T = rng.normal(0.0, np.sqrt(T), size=N) log_ret = (mu - 0.5*sigma**2)*T + sigma*W_T fig, ax = plt.subplots() ax.hist(log_ret, bins=80, density=True, alpha=0.7) ax.axvline(mu*T, color='red', linestyle='--', label='Naive A: 0.10') ax.axvline((mu - 0.5*sigma**2)*T, color='green', linestyle='-', label='Itô B: -0.22') ax.set_xlabel('ln(S_T/S_0)'); ax.set_ylabel('density'); ax.legend() # The green line sits in the middle of the histogram; the red line is deep in the right tail.

At σ=0.8\sigma = 0.8, the Itô-correct mean is 0.22-0.22 and the naive mean is +0.10+0.10. The histogram is centred near 0.22-0.22. More than half the mass sits to the left of the naive prediction. Anyone using the naive drift would systematically over-predict log-returns and under-price downside risk.

Takeaways

  • The Itô correction is the difference between a pricing model that works and one that doesn't. It is not a small effect at high volatility — it scales as σ2\sigma^2, not σ\sigma.
  • Log-return drift ≠ arithmetic-return drift. E[lnST/S0]=(μ12σ2)T\mathbb{E}[\ln S_T/S_0] = (\mu - \tfrac{1}{2}\sigma^2)T; E[ST/S0]1=eμT1\mathbb{E}[S_T/S_0] - 1 = e^{\mu T} - 1. Conflating them mis-prices every option.
  • High-vol assets exaggerate the mistake. For crypto or single names at σ50%\sigma \gtrsim 50\% the Itô correction exceeds the drift in magnitude — ignoring it produces not just a bad number but a wrongly-signed one.
  • Simulation doesn't lie. If your theoretical prediction and your Monte Carlo disagree, one of the two is wrong — usually the theoretical calculation, usually because of a missing Itô term.