Monte Carlo Option Pricing
Monte Carlo pricing simulates many random price paths and averages the discounted payoffs. Learn the method, a Python sketch, accuracy, variance reduction and uses.
Monte Carlo option pricing values an option by simulating thousands or millions of possible paths for the underlying price, calculating the option's payoff on each path and averaging the results. The average, discounted at the risk free rate, is the option's price. The method is slower than a formula for simple options, but it handles almost anything: options that depend on the average price, on whether a barrier is touched, or on several assets at once. The general technique, used in risk and research too, is in Monte Carlo Simulation.
The method#
- Choose a model for how the underlying moves, usually geometric Brownian motion under the risk neutral measure:
S(t + Δt) = S(t) × exp[(r - σ² / 2) × Δt + σ × √Δt × Z]
where Z is a random draw from a standard normal distribution.
- Simulate many paths from today to expiration.
- Calculate the payoff on each path, such as max(S_T minus K, 0) for a call.
- Average the payoffs and discount: price = e^(minus rT) × average payoff.
- Estimate the error using the standard deviation of payoffs.
A Python sketch#
import numpy as np
S0, K, T, r, sigma = 100.0, 100.0, 1.0, 0.05, 0.20
n_paths = 200_000
rng = np.random.default_rng(42)
Z = rng.standard_normal(n_paths)
ST = S0 * np.exp((r - 0.5 * sigma**2) * T + sigma * np.sqrt(T) * Z)
payoff = np.maximum(ST - K, 0.0)
price = np.exp(-r * T) * payoff.mean()
stderr = np.exp(-r * T) * payoff.std(ddof=1) / np.sqrt(n_paths)
print(round(price, 3), round(stderr, 3)) # about 10.45, error near 0.03
For a European call, a single jump to expiry is enough. Path dependent options need many time steps per path. See Python for Trading and NumPy and Pandas for Traders.
Accuracy#
The error shrinks with the square root of the number of paths: to halve the error, you need four times as many paths. See Sampling and Standard Error.
standard error = standard deviation of discounted payoffs / √(number of paths)
Variance reduction#
Techniques that improve accuracy without more paths:
| Technique | Idea |
|---|---|
| Antithetic variates | For every random draw Z, also use minus Z, cancelling some noise |
| Control variates | Price a similar option with a known formula alongside, and correct the estimate |
| Importance sampling | Draw more paths in regions that matter, such as near a barrier |
| Quasi random numbers | Use evenly spread sequences (such as Sobol) instead of pure random numbers |
Where Monte Carlo shines#
- Path dependent options: Asian options (based on average price), barrier options (knocked in or out by touching a level), lookbacks. See Asian Options and Barrier Options.
- Multi asset options: basket and spread options depending on several underlyings with correlations.
- Complex models: stochastic volatility, jumps, stochastic interest rates. See Stochastic Volatility and the Heston Model.
- Risk measurement: simulating portfolio values for value at risk. See Value at Risk (VaR).
Example: an Asian option#
The same structure works for almost any payoff: change one line that computes the payoff from the path, and the rest of the simulation stays the same. That flexibility is why banks rely on Monte Carlo engines for structured products and exotic options. See Exotic Options Explained.
Limitations#
- Slow compared with formulas and trees for simple options.
- American options are harder, because early exercise requires knowing future values. The Longstaff Schwartz method (2001) solves this using regression on simulated paths. See American Option Pricing.
- Greeks are noisy when estimated by bumping inputs; techniques like pathwise derivatives help.
- Model risk: results are only as good as the model and inputs.
Frequently asked questions#
What is Monte Carlo option pricing?#
A method that simulates many random price paths, calculates the option payoff on each and averages the discounted payoffs to estimate the option's value.
How many simulations are needed?#
It depends on the accuracy needed. Error falls with the square root of the number of paths, so 100,000 to 1,000,000 paths are common for accurate prices.
When should you use Monte Carlo instead of Black Scholes?#
For options whose payoff depends on the price path or on several assets, or when using models without closed form solutions.
Next, learn the methods for pricing early exercise in American Option Pricing.
3 quick questions on this lesson. Get them all right to finish it.
Turn on JavaScript to take the quiz.
Mentioned in
- Binomial and Trinomial TreesOptions
- Local VolatilityOptions
- Stochastic Volatility and the Heston ModelOptions
- Exotic Options ExplainedOptions
- Lognormal DistributionMath and Statistics
- FPGAs and Hardware AccelerationTrading Infrastructure