Black–Scholes price
—
Analytical benchmark
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.
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
These results are from earlier parameters. Run the simulation again to price the current contract.
Chart A
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
Chart C
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
Chart E
Matched-budget comparison
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.
A short summary of what the lab computes. Full derivations will be published in the accompanying article.
For a European call with strike \(K\) and maturity \(T\) on a non-dividend-paying stock with price \(S_0\), volatility \(\sigma\) and risk-free rate \(r\), the Black–Scholes price is
where \(\Phi\) is the standard normal distribution function. The put is \(P = K e^{-rT}\Phi(-d_2) - S_0\Phi(-d_1)\), consistent with put–call parity \(C - P = S_0 - K e^{-rT}\). When \(\sigma\sqrt{T} = 0\) both prices reduce to discounted intrinsic values. These closed forms are the exact benchmark for every simulation in the lab.
Prices are expectations under the risk-neutral measure, where the stock grows at the risk-free rate:
Because \(S_T\) has this exact log-normal form, a European payoff needs a single normal draw per sample and no time-stepping. The simulated paths in Chart A apply the same exact transition step by step, purely for intuition.
The price is a discounted expectation \(V = \mathbb{E}\!\left[e^{-rT} g(S_T)\right]\) with \(g(s) = (s - K)^+\) for a call and \((K - s)^+\) for a put. With independent discounted payoffs \(Y_i = e^{-rT} g\big(S_T^{(i)}\big)\),
\[ \hat V_N = \frac{1}{N} \sum_{i=1}^{N} Y_i \]is an unbiased estimator of \(V\), and the strong law of large numbers gives \(\hat V_N \to V\) almost surely as \(N \to \infty\).
The sample standard deviation \(s_Y\) describes the spread of individual payoffs; the standard error \(s_Y/\sqrt{N}\) describes the uncertainty of their mean. By the central limit theorem, an approximate 95% confidence interval is
The error therefore shrinks like \(N^{-1/2}\): each extra decimal place of accuracy costs a hundred times more samples. That is the theoretical rate. The empirical rate is measured separately, as the slope of \(\log \mathrm{RMSE}\) against \(\log N\) over many independent seeds, with \(\mathrm{RMSE} = \big(\tfrac{1}{R}\sum_{j} (\hat V^{(j)} - V)^2\big)^{1/2}\).
Antithetic variates pair each draw \(Z\) with \(-Z\). With a budget of \(N\) evaluations there are \(M = N/2\) independent pair averages:
It helps when the paired payoffs are negatively correlated (\(\rho < 0\)), as they are for payoffs that are monotone in \(S_T\).
Control variates exploit a correlated quantity with a known mean. Here \(X = e^{-rT}S_T\) has \(\mathbb{E}[X] = S_0\), because the discounted stock price is a martingale under the risk-neutral measure:
The lab estimates \(\beta\) on an independent pilot sample so the main-sample standard error stays valid, and charges the pilot to the same budget. Because the control is linear in \(S_T\), the call and put control-variate estimators differ by exactly \(S_0 - Ke^{-rT}\) sample by sample, so their errors coincide; the reference dataset shows identical RMSE for both.
This lab is an educational numerical experiment. It is not a trading system, a model calibrated to market data, or investment advice.