Monte Carlo option pricing

Pricing by simulation, with antithetic variates and control variates to cut the error, and why it matters for path-dependent options.

What it does

Monte Carlo pricing simulates many possible prices of the underlying at expiry under the risk-neutral model, computes the option's payoff on each, and averages the discounted payoffs. The average converges to the true price, and the spread of the payoffs gives a standard error for the estimate.

Two standard techniques reduce that error on the same number of paths. Antithetic variates pair every random draw Z with its mirror image −Z, which cancels part of the noise. A control variate uses a quantity whose true mean is known exactly (here the discounted terminal price, whose mean is S·e^(−qT)) and corrects the estimate by however far the simulated average of that quantity strayed from its true value.

For an Asian option, whose payoff depends on the average price over a set of dates, whole price paths are simulated. There is no closed-form price for an arithmetic average. A geometric average does have one, and it moves almost in lockstep with the arithmetic one, so it serves as the control variate.

Why it is used

For a plain European option the formula is exact, so simulation is shown to make its error visible and to validate it against a known answer. The same machinery prices options that have no formula, such as the Asian option, where simulation is the practical method.

Inputs

  • The same inputs as Black-Scholes-Merton.
  • Number of paths: 5,000, 20,000 or 100,000 on the page (up to 200,000 through the API).
  • For the Asian option: the averaging dates (weekly, monthly or daily over the option's life).
  • A fixed random seed (42), so identical inputs always give identical numbers.

Formulas

S_T = S·exp[(r − q − σ²/2)·T + σ·√T·Z], Z ~ N(0, 1) Estimate = e^(−rT) · mean(payoff(S_T)) SE = stdev(payoffs) / √n Antithetic: pair payoff(Z) with payoff(−Z) and average each pair Control: Ŷ = Ȳ − b·(X̄ − E[X]), X = e^(−rT)·S_T, E[X] = S·e^(−qT), b = cov(Y, X) / var(X) 95% interval = estimate ± 1.96 · SE Variance reduction = SE(plain)² / SE(reduced)² (how many times more plain paths the same precision needs) Asian call payoff = max(mean(S_t1, …, S_tn) − K, 0); control: geometric average (closed form)

Assumptions

  • Geometric Brownian motion under the risk-neutral measure, as in Black-Scholes-Merton. For a European payoff the terminal price is drawn exactly, so no time steps are needed.
  • The control-variate coefficient b is estimated from the same simulated paths. This adds a bias of order 1/n, negligible at the path counts used.
  • The 95% interval uses the normal approximation to the sampling distribution of the mean.
  • Asian options are European-style (settled at expiry) and averaged over equally spaced dates ending at expiry.
  • Random numbers come from NumPy's PCG64 generator.

How to read the results

The ± figure is sampling error only: it shrinks with the square root of the number of paths and says nothing about whether the model fits a real market. A variance reduction of ×25 means plain Monte Carlo would need 25 times as many paths for the same precision. The convergence chart uses a log scale, on which a band that shrinks like 1/√n narrows steadily.

Limitations

  • Convergence is slow: halving the error takes four times the paths.
  • American options are not priced by simulation here; that needs a regression method such as Longstaff-Schwartz. The binomial tree handles them.
  • Averaging is discrete, on the stated dates. A continuously averaged option would be slightly cheaper.
  • Every simulation inherits the lognormal, constant-volatility assumptions of the underlying model.

Where it can fail

  • For deep out-of-the-money options almost every path pays zero, so a few paths carry the estimate and the standard error itself is noisy. The interval can then cover the true price less often than 95%.
  • With very few paths the normal approximation behind the interval is poor.

Validation on current data

How often the 95% interval contains the exact Black-Scholes price, over many independent runs with different seeds, recomputed by the running engine.

References

  • Boyle, P. (1977). Options: a Monte Carlo approach. Journal of Financial Economics 4(3).
  • Glasserman, P. (2003). Monte Carlo Methods in Financial Engineering. Springer (chapter 4, variance reduction).
  • Kemna, A. and Vorst, A. (1990). A pricing method for options based on average asset values. Journal of Banking and Finance 14(1).

Try it in the options pricer