Monte Carlo Simulation Techniques
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
- Define model dynamics: Specify drift, volatility, correlation for each underlying
- Select RNG: Choose between pseudo-random (Mersenne Twister) or quasi-random (Sobol)
- Generate paths: Simulate spot evolution from t=0 to T with appropriate time steps
- Calculate payoffs: Apply payoff function to each path's terminal or path-dependent values
- 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
| Product | Paths Required | Runtime (single thread) |
|---|---|---|
| European option | 50,000 | 50 ms |
| Asian option | 100,000 | 200 ms |
| Barrier option | 200,000 | 500 ms |
| Basket option (5 assets) | 100,000 | 300 ms |
| Variance swap | 50,000 | 100 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
| Paths | Price | SE | 95% 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.