Monte Carlo Simulation Techniques

advancedPublished: 2026-01-01

Monte Carlo Simulation Techniques

Monte Carlo simulation prices derivatives by simulating many possible paths of the underlying and averaging the discounted payoffs. For path-dependent and multi-asset products, Monte Carlo is often the only feasible approach. A reproducible workflow with proper variance reduction achieves pricing accuracy within +/- 1% P/L with 100,000 paths.

Workflow

  1. Define model dynamics: Specify drift, volatility, correlation for each underlying
  2. Select RNG: Choose between pseudo-random (Mersenne Twister) or quasi-random (Sobol)
  3. Generate paths: Simulate spot evolution from t=0 to T with appropriate time steps
  4. Calculate payoffs: Apply payoff function to each path's terminal or path-dependent values
  5. Average and discount: Compute mean payoff and discount to present value

RNG Choices and Why They Matter

Pseudo-random (Mersenne Twister):

  • Standard library default
  • Independent draws
  • Convergence rate: O(1/√N)
  • Good for general use

Quasi-random (Sobol sequences):

  • Low-discrepancy sequences fill space more evenly
  • Convergence rate: O(1/N) in low dimensions
  • Up to 10x efficiency gain for smooth payoffs
  • Requires scrambling for >10 dimensions

Recommendation: Use Sobol for vanilla and moderately path-dependent products. Switch to Mersenne for products with discontinuous payoffs (barriers, digitals) where Sobol's structure can create artifacts.

Variance Reduction Toolkit

Antithetic Variates

For each random path Z, also compute the path using -Z:

  • Path 1: S_T = S_0 × exp((r - σ²/2)T + σ√T × Z)
  • Path 2: S_T = S_0 × exp((r - σ²/2)T + σ√T × (-Z))

Average the two payoffs. Variance reduction: typically 30-50% for smooth payoffs.

Control Variates

Use a correlated quantity with known value to reduce variance:

  • Simulate both exotic payoff and vanilla call payoff
  • Vanilla call has closed-form value
  • Adjust exotic estimate based on vanilla error

Formula: Adjusted_exotic = MC_exotic - β × (MC_vanilla - BS_vanilla)

Where β is the regression coefficient. Variance reduction: 40-70% for well-correlated exotics.

Importance Sampling

Shift the probability distribution to sample more relevant paths:

  • For OTM options, sample more paths that end ITM
  • Adjust weights to correct for distribution shift
  • Significant reduction for rare-event payoffs

Path-Dependent Payoffs and Greeks

Path simulation for Asian option:

for each path:
    S = S_0
    sum = 0
    for t = 1 to N:
        Z = random_normal()
        S = S × exp((r - σ²/2)×dt + σ×√dt×Z)
        sum += S
    average = sum / N
    payoff = max(average - K, 0)

Greek estimation:

  • Pathwise (IPA): Differentiate payoff with respect to parameter
  • Finite difference: Bump parameter, re-run simulation, compute difference
  • Likelihood ratio: Weight paths by derivative of probability density

Pathwise Greeks require smooth payoffs. Finite difference is more general but noisier.

Convergence Diagnostics and Thresholds

Standard error calculation: SE = std(payoffs) / √N

For N = 100,000 paths and std = $5.00: SE = $5.00 / √100,000 = $0.016

95% confidence interval: Price ± 1.96 × SE = Price ± $0.03

Convergence check: Run simulation with increasing path counts and verify:

  • SE decreases as 1/√N (pseudo-random) or faster (quasi-random)
  • Price estimate stabilizes
  • 99% CI width < 1% of price

Accuracy tolerance: Target +/- 1% P/L accuracy requires:

  • SE/Price < 0.5% (for 95% CI)
  • Typically 100,000+ paths for vanilla options
  • 500,000+ paths for exotics with barriers

Runtime and Path Counts

ProductPaths RequiredRuntime (single thread)
European option50,00050 ms
Asian option100,000200 ms
Barrier option200,000500 ms
Basket option (5 assets)100,000300 ms
Variance swap50,000100 ms

Variance reduction techniques can reduce required paths by 50% or more.

Example Convergence Analysis

Asian call option:

  • S = $100, K = $100, σ = 30%, r = 5%, T = 1 year
  • 12 monthly averaging dates
PathsPriceSE95% CI Width
10,000$8.42$0.12$0.47
50,000$8.38$0.05$0.21
100,000$8.36$0.04$0.14
500,000$8.35$0.02$0.06

At 100,000 paths, 95% CI is $8.22-$8.50. Acceptable for trading purposes.

With antithetic variates (100,000 effective paths from 50,000 pairs):

  • Price: $8.35
  • SE: $0.03
  • 95% CI: $0.11 (30% narrower)

Implementation Notes

Time step selection:

  • For continuous monitoring: Many small steps (daily or finer)
  • For discrete monitoring: Match observation dates
  • General rule: At least 50 steps per year for reasonable accuracy

Memory management:

  • Store only running statistics, not full paths
  • For path-dependent Greeks, store paths or checkpoints
  • Parallelize across paths (embarrassingly parallel)

Reproducibility:

  • Fix random seed for debugging and validation
  • Document seed in production runs
  • Verify same seed produces identical results

Next Steps

For PDE-based alternative to Monte Carlo, see Finite Difference Methods Overview.

To compute Greeks efficiently from simulation, review Estimating Greeks Numerically.

Related Articles