We price European options using the Black-Scholes model, the Binomial model (CRR), and Monte Carlo simulations with variance reduction techniques. This project demonstrates the application of these models through an interactive pricing tool.
The Black Scholes Model.
We consider a frictionless financial market consisting of:
A risky asset (stock)S=(St)t≥0, which follows a Geometric Brownian Motion dSt=μdt+σdWt
A riskless asset (bond)B=(Bt)t≥0, growing at a constant risk-free rate rdBt=rBtdt
Here, μ is the drift (expected return of the asset), σ is the volatility and (Wt)t≥0 is a standard Brownian motion. Under the risk-neutral measure Q, we have:dSt=rStdt+σStdWtQThe European call option price at time t=0 with strike K and maturity T is given by:C0=e−rTEQ[max(ST−K,0)]Using the Black-Scholes closed-form solution, this simplifies to:C0P0=S0Φ(d1)−Ke−rTΦ(d2)=Ke−rTΦ(−d2)−S0Φ(−d1)whered1=σTln(S0/K)+(r+21σ2)T,d2=d1−σTand Φ(⋅) is the standard normal cumulative distribution function.
The Binomial Model.
In the Cox-Ross-Rubinstein (CRR) binomial model:
We discretize time into N steps of length Δt=T/N
The stock price can move up by a factor of u=eσΔt or down by a factor of d=e−σΔt=1/u
The risk neutral probability is:p=u−derΔt−dAt maturity T, the stock can end up in one of N+1 possible states. The stock price at node (i,N) is:Si,N=S0⋅ui⋅dN−i=S0⋅u2i−NThe option payoff at each terminal node depends on whether it's a call or put:
Call Option Payoff: Ci,N=max(Si,N−K,0)
Put Option Payoff: Pi,N=max(K−Si,N,0)
We calculate the option value at each earlier node by working backwards from maturity. The value at node (i,j) is given by the risk-neutral expectation:Vi,j=e−rΔt[p⋅Vi+1,j+1+(1−p)⋅Vi,j+1]This process continues until we reached the root node (0,0), giving us the fair price of the option today.
For a call, we use terminal payoffs Ci,N
For a put, we use terminal payoffs Pi,N
Monte Carlo Simulation.
In the Monte Carlo framework, we simulate multiple paths of the underlying asset under the risk-neutral measure Q and estimate the option price by averaging the discounted payoffs. We assume the risk-neutral dynamic of asset (St)t≥0 follow:ST=S0exp((r−21σ2)T+σTZ),Z∼N(0,1)
Naive Monte Carlo
We simulate N independent samples Z1,…,ZN∼N(0,1), compute the terminal stock price for each:ST(i)=S0exp((r−21σ2)T+σTZi)The European option payoff for each sample depends on whether it's a call or a put:
Call Option Payoff:fi=max(ST(i)−K,0)
Put Option Payoff:fi=max(K−ST(i),0)
The Monte Carlo estimator for the option price is then:VN=e−rT⋅N1i=1∑NfiBy the Central Limit Theorem, for large N, the estimator VN is approximately normally distributedVN∼N(V,Nσf2)where σf2 is the variance of the discounted payoffs. The 95% confidence interval is:VN±1.96⋅Nσf, where σf2=N−11i=1∑N(fi−f)2
Antithetic Variates
We simulate N standard normal variables Z1,…,ZN∼N(0,1), and also use their negatives, −Z1,…,−ZN∼N(0,1). For each i, we compute:ST(+)ST(−)=S0exp((r−21σ2)T+σTZi)=S0exp((r−21σ2)T−σTZi)The European option payoff is given by:
Put Option Payoff:fi=21[max(K−ST(+),0)+max(K−ST(−),0)]
The estimator for the option price is then:VNanti=e−rT⋅N1i=1∑NfiThe confidence interval is given by:VNanti±1.96⋅Nσanti, where σanti2=N−11i=1∑N(fi−f)2The variance decomposition of the estimator is given byVar(fi)=Var(2f(Zi)+f(−Zi))=21Var(f)+21Cov(f(Zi),f(−Zi))where f is the payoff function of the option. Thus, variance reduction is achieved ifCov(f(Zi),f(−Zi))<0
Control Variates
We simulate N standard normal variables Z1,…,ZN∼N(0,1), and for each i, compute the terminal asset value:ST(i)=S0exp((r−21σ2)T+σTZi)We also define a control variate Yi=ST(i), whose expected value is:E[Yi]=E[ST(i)]=S0erTFor a constant c∈R, we define the adjusted payoff using:ficv=fi−c(Yi−E[Yi])where fi is the discounted option payoff. The European option payoff is given by:
Put Option Payoff:fi=max(K−ST(i),0),ficv=fi−c(ST(i)−S0erT)
The estimator of the option price is then:VNcv=e−rT⋅N1i=1∑NficvThe confidence interval is given by:VNcv±1.96⋅Nσcv, where σcv2=N−11i=1∑N(ficv−fcv)2The variance decomposition of the estimator is given by:Var(ficv)=Var(fi−c(Yi−E[Y]))=Var(f)+c2Var(Y)−2cCov(f,Y)This is minimised by choosing:c∗=Var(Y)Cov(f,Y)In this case, the variance becomesVar(ficv)=Var(f)⋅(1−ρ2),ρ=Corr(f,Y)Thus, variance reduction is achieved when ρ2>0, i.e., when f and Y are positively correlated. The higher the correlation, the higher the variance reduction.
Stratified Sampling
We divide the interval [0,1] into N equal-width strata and draw one uniform sample per stratum:Ui∼U(Ni−1,Ni), for i=1,…,NWe then transform this using Zi=Φ−1(Ui) where Φ−1 is the inverse standard normal CDF and simulateST(i)=S0⋅exp((r−21σ2)T+σTZi)The European option payoff is given by:
Call Option Payoff:fi=max(ST(i)−K,0)
Put Option Payoff:fi=max(K−ST(i),0)
The estimator of the option price is thenVNstrat=e−rT⋅N1i=1∑NfiThe confidence interval is given byVNstrat±1.96⋅Nσstrat, where σstrat2=N−11i=1∑N(fi−f)2Variance reduction is achieved because, due to more uniform coverage of the sample space. Stratification reduces the chance of oversampling or undersampling extreme regions.
Importance Sampling
We simulate N standard uniform random variables Y1,…,YN∼U(yK,1), where the truncation point yK∈(0,1) is computed such that:ST(yK)=K⟹yK=Φ(σTlog(K/S0)−(r−21σ2)T)For each i, we compute:Zi=Φ−1(Yi),ST(i)=S0⋅exp((r−21σ2)T+σTZi)We apply the transformation:gi=(1−yK)⋅f(ST(i)), with f(S)=max(S−K,0) or max(K−S,0)The European option payoff is given by:
Put Option Payoff:fi=max(K−ST(i),0),gi=(1−yK)⋅fi
The estimator for the option price is then:VNIS=e−rT⋅N1i=1∑NgiThe confidence interval is given by:VNIS±1.96⋅NσIS, where σIS2=N−11i=1∑N(gi−g)2The variance reduction is achieved because we avoid simulating paths where ST<K, which yield zero payoff for a call option, or where ST>K for a put. By concentrating simulations on the effective region of integration Yi∼U[yK,1], we eliminate variance from regions that contribute nothing to the expectation.
Pricing Tool.
Use the interactive tool below to experiment with the Black-Scholes, Binomial (CRR), and Monte Carlo models for pricing European options. You may adjust the parameters to see how each model responds, and compare their approaches in practice.