Monte Carlo Option Pricing
Price an option by simulating thousands of random price paths, computing the payoff on each, and averaging. Slow but nearly unstoppable, it handles path-dependent and multi-asset payoffs that formulas and trees can't touch.
Prerequisites: Risk-Neutral Pricing, Geometric Brownian Motion
Sometimes an option's payoff is too tangled for a neat formula or a tree. Maybe it depends on the average price over the whole life of the trade (an Asian option), or on whether the price ever touched a level (a barrier), or on three stocks at once. When that happens, quants fall back on the most brute-force, most reliable tool they own: just simulate it. Roll the dice thousands of times, work out what the option would have paid on each imagined future, and take the average. That's Monte Carlo pricing, named after the casino, and it will grind out a price for almost any payoff you can describe.
The recipe
The theory that makes this legitimate is risk-neutral pricing: an option is worth the discounted expected payoff, taken in a world where the stock drifts at the risk-free rate. An average over many simulated paths is just an estimate of that expectation. So the recipe is:
- Simulate a possible future price using the risk-neutral dynamics.
- Compute the option's payoff on that path.
- Repeat thousands of times and average the payoffs.
- Discount that average back to today.
For a simple European option we only need the final price. Under geometric Brownian motion the terminal price is
where is today's price, the risk-free rate, the volatility, the time to expiry, and a fresh draw from a standard normal (a random number with mean 0 and standard deviation 1). Each draw of gives one simulated future. The price estimate is
Monte Carlo price = discounted average payoff over many risk-neutral simulated paths. Every payoff you can code, you can price this way, which is its whole appeal.
Worked example
Price a one-year call, , , , . The drift term is , and . So each path is . Take five random normal draws (in real life you'd take a hundred thousand):
| payoff | ||
|---|---|---|
The average payoff is , and with that is the price estimate: about $10.6. The true Black-Scholes value for these inputs is roughly $8.0, so our five-path guess is way off, because five draws is nowhere near enough. That single wild path () dragged the whole average up. This is the essential lesson of Monte Carlo: it works, but only in bulk.
How the error shrinks (slowly)
The estimate's uncertainty falls like , where is the number of paths. That square root is the curse: to halve your error you need four times as many paths; to get one more decimal place of accuracy you need a hundred times as many. This is the same that governs all Monte Carlo integration.
Convergence is painfully slow: error scales as , so 100x more accuracy costs 10,000x more paths. A handful of simulations gives a confidently wrong number. Always report the standard error, not just the average.
Because raw Monte Carlo is so slow, half the craft is speeding it up with variance reduction. Two staples:
- Antithetic variates. For every draw , also use . The two paths are negatively correlated, so their average is steadier, cutting the error for free.
- Control variates. Simulate a related quantity whose exact answer you do know (say a plain call when pricing an Asian one), and use the known error on the easy one to correct the hard one. When done well, importance sampling and control variates can shrink the needed paths by orders of magnitude.
Reach for Monte Carlo when the payoff is path-dependent or multi-asset (Asian, barrier, basket options). For a plain European option, a tree or Black-Scholes is faster and exact, don't simulate what you can solve.
Common pitfalls
- Too few paths. The five-path example above shows how noisy small samples are. Real pricing uses tens or hundreds of thousands, and you always quote a confidence band.
- Wrong drift. You must simulate under the risk-neutral rate , not the stock's real expected return. Using the real drift prices the wrong thing entirely.
- Discounting once for path-dependent payoffs. Cash flows that occur during the option's life must each be discounted from their own date, not all from expiry.
- Trusting a single run. Two runs with different random seeds will disagree. If they disagree a lot, you need more paths or variance reduction, not a re-roll you happen to like.
Related concepts
Practice in interviews
Further reading
- Glasserman, Monte Carlo Methods in Financial Engineering (Ch. 1)
- Boyle (1977), Options: A Monte Carlo Approach