Back

Monte Carlo Options Pricing

Explore European option pricing through stochastic simulation, Black–Scholes analytical benchmarks, convergence analysis, and variance reduction.

Black–Scholes gives the exact price of a European option under its model assumptions. This lab prices the same contract by simulation instead, so you can watch a statistical estimate approach the analytical answer, quantify its uncertainty with confidence intervals, measure the rate at which the error shrinks, and test whether antithetic and control variates buy accuracy for the same computational budget.

Connecting to the pricing engine… Python · NumPy · SciPy engine Seeded PCG64, reproducible Article

Simulation parameters

Contract and market
$

$

%

%

yr

Option type
Estimator
Monte Carlo simulations N

The Black–Scholes benchmark updates as you edit. Monte Carlo runs only when you press Run, so every estimate comes from one explicit, seeded experiment.

Black–Scholes price

—

Analytical benchmark

Monte Carlo estimate

—

Press Run Simulation to estimate

Absolute difference

—

|Monte Carlo − Black–Scholes|

95% confidence interval

—

Estimate ± 1.96 standard errors

Chart A

Simulated stock price paths

Thirty risk-neutral GBM trajectories illustrate how the stock price evolves randomly. The European estimator never needs whole paths: it samples \(S_T\) directly from its exact log-normal distribution, which is the histogram on the right edge. Paths use their own seeded stream, so drawing them never changes the price estimate.

Convergence

As \(N\) grows the estimate settles towards the Black–Scholes price and its confidence interval tightens. A single seeded run illustrates that behaviour; measuring the rate requires repeating the experiment over many independent seeds and computing the root-mean-square error.

Chart B

Price convergence, one seeded run

Each method is priced at \(N = 1{,}000\) to \(100{,}000\) with your parameters and seed; larger \(N\) extends the same random stream. Error bars are 95% confidence intervals. One run shows convergence, but it cannot measure its rate.

Chart C

Convergence rate, many seeds

Theory: the central limit theorem gives \(\mathrm{RMSE} \propto N^{-1/2}\), a slope of \(-\tfrac12\) on log–log axes (dashed). Measured: the least-squares slope of \(\log_{10}\mathrm{RMSE}\) on \(\log_{10} N\) across independent seeds, shown below.

Variance reduction

All three estimators target the same price with the same budget of \(N\) payoff evaluations. Antithetic pairs spend that budget on \(N/2\) mirrored pairs; the control variate spends part of it on an independent pilot sample that estimates \(\beta\). A variance reduction factor of 4 means standard Monte Carlo would need four times as many evaluations to match that standard error.

Chart D

Standard error at a matched budget

Uses your current parameters, \(N\) and seed. Bars show each estimator's standard error; labels give the variance reduction factor \(\mathrm{SE}^2_{\text{standard}} / \mathrm{SE}^2_{\text{method}}\).

Chart E

Error versus computational cost

Matched-budget comparison

Estimator summary

Run the comparison to fill this table with live results.

Lower variance is not the same as lower wall-clock time. Antithetic sampling halves the normal draws but still evaluates every payoff; the control variate adds a pilot regression and extra arithmetic per sample. Whether a method is worth it depends on accuracy per unit of runtime, which Chart E measures directly.

Every number on this page is computed by the Python pricing engine behind the API, using NumPy's seeded PCG64 generator. The same seed and parameters always reproduce the same result.