Monte Carlo Option Pricing Calculator

Option type

How to use it

  1. Choose a call or a put, and the payoff. For a barrier option, enter the barrier and choose its type.
  2. Enter the underlying price, the strike (a floating-strike lookback has none), the days to expiration, the volatility and the risk-free rate. Add a dividend yield if the underlying pays one.
  3. Enter the time steps M, the dates on which the price is sampled for averages, barriers and extremes, and the number of paths N. Paths × steps is limited to 5,000,000 so the page stays responsive.
  4. Choose the variance reduction and press Run simulation. The price, its standard error and its 95 % confidence interval appear, with the paths and how the estimate settled.

The same seed gives the same paths, so a copied link reproduces the result exactly; change the seed to see how much the answer moves. To see it filled in, choose “Show an example”. For study and comparison; not financial advice.

Result

Enter the underlying price.

Geometric Brownian motion under the risk-neutral measure, monitored at the M steps only. Rates and yield continuously compounded, time as calendar days over 365.

Methodology, equations and examples

Monte Carlo pricing values an option by simulating many possible paths of the underlying price, computing the option's payoff on each, and discounting the average payoff at the risk-free rate. It works for any payoff that can be computed from a path, including ones with no closed-form price, such as an option on the arithmetic average price. Its answer is an estimate, so it always comes with a standard error that says how far it could be from the exact value.

The simulated paths

Under the risk-neutral measure, the measure used for pricing in which every asset is expected to grow at the risk-free rate, the underlying follows geometric Brownian motion. Its price is sampled at M equal steps of length Δt = T / M:

S(t + Δt) = S(t) exp[(r − q − σ²/2) Δt + σ √Δt Z]

  • S – Underlying price
  • T – Time to expiration in years, taken as calendar days / 365
  • r – Risk-free rate, continuously compounded
  • q – Dividend yield, continuously compounded
  • σ – Volatility, per year
  • Z – A standard normal random number, drawn fresh for each step of each path

This step is exact for geometric Brownian motion at any Δt, so a European option needs only one step. More steps matter for payoffs that depend on the path, because the average, the barrier and the extremes are checked only at the M sampled dates. A barrier option monitored daily is worth a little more (knock-out) or less (knock-in) than one monitored continuously, since the price can cross the barrier between samples unseen.

The random numbers come from a seeded generator, so the same seed always gives the same paths. That makes a result reproducible from its link, and it means two payoffs priced with one seed see identical paths.

The payoffs

With w = 1 for a call and −1 for a put, and S₁ … S_M the sampled prices:

  • European: max[w(S_M − K), 0]
  • Asian, arithmetic average: max[w(A − K), 0], with A = (S₁ + … + S_M) / M
  • Asian, geometric average: max[w(G − K), 0], with G = (S₁ × … × S_M)^(1/M)
  • Barrier: the European payoff if the barrier H was reached (knock-in) or never reached (knock-out) on a sampled date, otherwise zero
  • Lookback, floating strike: S_M − min S for a call and max S − S_M for a put, the extremes taken over today's price and the M samples

The estimate and its error

With N independent payoffs Y₁ … Y_N, the price and its standard error are

Price = e^(−rT) × mean(Y)

Standard error = e^(−rT) × s_Y / √N

where s_Y is the sample standard deviation of the payoffs. The 95 % confidence interval is the price ± 1.96 standard errors. The error falls as 1/√N, so halving it takes four times as many paths. That is why variance reduction, which shrinks s_Y instead, is worth having.

Variance reduction

Antithetic variates pair each path with its mirror image, the path built from −Z instead of Z. The pair's average payoff is one sample. Because the two paths move in opposite directions, their payoffs are negatively correlated and the average varies less than either one.

A control variate corrects each payoff by a related quantity whose exact value is known. For the arithmetic Asian option the control is the geometric Asian payoff X on the same path, whose price has a closed form. Each sample becomes

Y − b (X − E[X])

with b = cov(Y, X) / var(X) estimated from the run. The two averages are so closely related that this removes almost all of the error.

The geometric Asian price used as the control, and shown beside the geometric estimate, is the discrete closed form of Kemna and Vorst. ln G is normal with mean μ = ln S + (r − q − σ²/2) Δt (M + 1)/2 and variance σ_G² = σ² Δt (M + 1)(2M + 1)/(6M), so

Price = e^(−rT) w [e^(μ + σ_G²/2) N(w d₁) − K N(w d₂)], with d₁ = (μ − ln K + σ_G²)/σ_G and d₂ = d₁ − σ_G

where N(x) is the cumulative standard normal distribution.

Example

The example is the six-month call in Hull, Options, Futures, and Other Derivatives: S = $42, K = $40, r = 10 %, σ = 20 %, no dividend. Its Black-Scholes price is $4.7594. With M = 50 steps, Δt = 0.01 years, so each step has a drift of (0.10 − 0.20²/2) × 0.01 = 0.0008 and a volatility of 0.20 × √0.01 = 0.02.

With 50,000 paths, seed 1 and no variance reduction, the estimate is $4.7578 with a standard error of $0.0223. The exact price is 0.07 standard errors away, well inside the 95 % interval of $4.7142 to $4.8015. Turning antithetic variates on, with the same 50,000 paths, gives $4.7542 with a standard error of $0.0109, about half the error for the same work.

Change the payoff to the arithmetic Asian call on the same stock, which has no closed form. Without variance reduction the estimate is $3.2549 ± $0.0260 (95 %). Antithetic variates bring the standard error from $0.0133 to $0.0052. Adding the geometric control variate brings it to $0.0003, giving $3.2673 ± $0.0005: more than 2,500 times less variance than the plain run, from the same paths. The geometric Asian call itself estimates at $3.2060 against its closed form of $3.2088, within one standard error.

Top