Skip to content
All library documents

Risk-Neutral Drift in Monte Carlo European Option Pricing

Article Quant Q&A · Author: Marlon Brando

Summary

The document explains the drift term used when simulating a stock price under the risk-neutral measure to price a European call by Monte Carlo. The simulated log return has mean (r − σ²/2)T and a random component scaled by volatility and the square root of time; the payoff is discounted at the risk-free rate. The key distinction is that the pricing simulation uses the risk-free rate rather than the asset’s real-world expected return.

The volatility adjustment comes from the conversion between the drift of a geometric Brownian motion in price space and the drift of its logarithm, as captured by Itô’s formula. The document says that with many experiments, the estimate approaches the Black–Scholes value. It gives a conceptual explanation but no derivation or numerical example, and the code is specifically for a European call under the assumed model; Monte Carlo error remains for finite simulation counts.

Key ideas

  • Risk-neutral pricing uses the risk-free rate as the expected asset return under the pricing measure.
  • The log-price drift includes a volatility adjustment of one half the variance.
  • Monte Carlo prices the option by averaging simulated terminal payoffs and discounting them.
  • The estimate approaches the Black–Scholes result as the number of simulations grows.

Tags

Full text
# Pricing European Options with Monte Carlo


# Pricing European Options with Monte Carlo












Given the following code (S0 = Initial Share Price, r= (risk-free) interest rate, K=Strike, Sigma= Standard Deviation, T=years, nExp=Number of Experiments)

```
def MonteCarlo_OptionPricing(S0, K, r, sigma, T, nExp=100000):

    rMC = rd.randn(n_exp) * sigma * np.sqrt(T) + (r - sigma**2 / 2) * T
    ST = S0 * np.exp(rMC) 
    
    cT = np.maximum(ST-K, 0)

    c0 = np.mean(cT) * np.exp(-r*T)

    return c0
```

For large nExp it will basically return almost the same value for European options as the (standard) Black-Scholes-Model.

My question concerns `(r - sigma**2 / 2) * T`: What exactly is this part accounting for? Is that taking care of the drift?

Any input is welcome!

## Answer by KaiSqDist (score 4, accepted)

https://quant.stackexchange.com/a/79133

The term $r - \frac{\sigma^2}{2}$ is used to account for the risk-neutral drift in the spot price evolution.

We do not use drift $\mu$ because we are simulating the stochastic process in the risk-neutral world, which states that evolution occurs at the risk-free rate.

You penalize this riskless rate using the volatility term $\frac{\sigma^2}{2}$ because of Ito's calculus, which suggests that we need this second term, full explanation here - Geometric Brownian motion - Volatility Interpretation (in the drift term).

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.