← Back to Learn
IV ExpertWeek 23 • Lesson 66Duration: 50 min

MC Monte Carlo Pricing

When the math gets too complex for formulas — simulate it

Learning Objectives

  • Understand Monte Carlo simulation for derivative pricing
  • Learn variance reduction techniques
  • See how MC connects to production validation frameworks

Explain Like I'm 5

Some derivatives are too complex for clean formulas. Monte Carlo is the brute force approach: simulate thousands of possible price paths, compute the payoff on each, average them — that's your price. More paths equals more accuracy. This is the same concept production systems use for Monte Carlo validation — simulate thousands of equity curves and see how often things blow up.

Think of It This Way

Monte Carlo pricing is like estimating the area of an oddly-shaped pool by throwing random tennis balls from a helicopter. If you throw 1000 balls at a rectangular field containing the pool, and 300 land in the pool, the pool is about 30% of the field. More balls = better estimate. Same idea but with random price paths instead of tennis balls.

1Monte Carlo for Option Pricing

The algorithm is straightforward: 1. Generate NN random price paths using geometric Brownian motion (GBM): ST=S0×exp[(rσ2/2)T+σT×Z]S_T = S_0 \times \exp[(r - \sigma^2/2)T + \sigma\sqrt{T} \times Z], where ZN(0,1)Z \sim N(0,1) 2. Compute the option payoff on each path: Call payoff =max(STK,0)= \max(S_T - K, 0) 3. Discount the average payoff: Price =erT×1N×payoffs= e^{-rT} \times \frac{1}{N} \times \sum \text{payoffs} For European options, this gives the same answer as Black-Scholes (with enough paths). But Monte Carlo can handle ANY derivative — path-dependent, multi-asset, exotic, whatever you can define a payoff for. The beauty of MC is its generality. If you can code the payoff, you can price it. No specialized mathematical derivation required.

2Variance Reduction

More paths = more accurate, but slower. Variance reduction gets the same accuracy with FEWER paths. This is where the clever engineering happens: Antithetic variates: For every random path ZZ, also simulate Z-Z. Each pair covers more of the distribution. Cuts variance roughly in half. This is essentially free — zero extra computation. Control variates: If you know the exact price of a similar (simpler) option, use the error on that known option to correct your estimate. One of the most powerful techniques available. Importance sampling: Instead of sampling uniformly, sample MORE from regions that matter. Weight by the sampling probability. Excellent for rare events. Stratified sampling: Divide the distribution into strata, sample from each. Ensures even coverage instead of random clustering.

3MC Beyond Options: Validation

Monte Carlo isn't just for pricing derivatives. The same concept powers production trading validation: - Instead of simulating stock prices, simulate sequences of trades - Instead of computing option payoffs, compute max drawdown - Instead of "what's this option worth?" ask "what's the probability of blowing up?" Production systems use block bootstrap MC: - Sample BLOCKS of trades instead of individual trades - Preserves autocorrelation in trade outcomes - Blocks respect regime structure - Result: more realistic simulation of actual trading sequences If you understand MC for option pricing, you understand MC for everything. The framework is identical — simulate, compute metric, aggregate, derive confidence intervals.

4Common MC Pitfalls

Five things that trip people up: Not enough paths. 1,000 simulations is NOT enough for anything serious. You need 50K-100K minimum for stable estimates. Standard error 1/N\propto 1/\sqrt{N}, so you need 4x paths for 2x accuracy. Ignoring discretization bias. If you simulate GBM with large time steps, you introduce bias. Price paths should use small Δt\Delta t (daily or finer). Forgetting to discount. The payoffs are at time TT. The PRICE is at time 0. You must discount by erTe^{-rT}. This gets forgotten surprisingly often. Not reporting standard error. A MC price without a confidence interval is meaningless. Always report the SE. If SE is 10% of your price, you need more simulations. Correlation in multi-asset MC. If you're simulating multiple correlated assets, you need Cholesky decomposition to induce the correct correlation structure. Uncorrelated simulations of correlated assets produce wrong prices.

Monte Carlo Convergence: Call Price vs Number of Simulations

Key Formulas

GBM Price Path

Generates a random terminal stock price under geometric Brownian motion. Z is a standard normal random variable. This is the building block of Monte Carlo simulation.

MC Price Estimate

Monte Carlo option price = discounted average of simulated payoffs. Standard error decreases as 1/sqrt(N) — need 4x more paths for 2x more accuracy.

Hands-On Code

Monte Carlo Option Pricing

python
import numpy as np

def mc_option_price(S, K, T, r, sigma, n_sims=100000, option_type='call'):
    """Monte Carlo pricing with antithetic variates."""
    Z = np.random.standard_normal(n_sims // 2)
    Z = np.concatenate([Z, -Z])  # antithetic variates
    
    # Terminal prices under GBM
    S_T = S * np.exp((r - sigma**2/2)*T + sigma*np.sqrt(T)*Z)
    
    # Payoffs
    if option_type == 'call':
        payoffs = np.maximum(S_T - K, 0)
    else:
        payoffs = np.maximum(K - S_T, 0)
    
    # Discounted average
    price = np.exp(-r * T) * np.mean(payoffs)
    se = np.exp(-r * T) * np.std(payoffs) / np.sqrt(n_sims)
    
    print(f"=== MONTE CARLO PRICING ({n_sims:,} sims) ===")
    print(f"  {option_type.upper()}: {price:.4f} +/- {1.96*se:.4f} (95% CI)")
    print(f"  Standard error: {se:.6f}")
    
    return price, se

Prices European options using Monte Carlo with antithetic variates for variance reduction, then compares to the analytical Black-Scholes price.

Knowledge Check

Q1.You need the Monte Carlo standard error to be half as large. How many more simulations do you need?

Assignment

Implement Monte Carlo pricing with and without antithetic variates. Compare convergence speed. Then price an Asian option that Black-Scholes can't handle.