MATH40082 (Computational Finance) Assignment No. 2: Advanced Methods
MATH40082 (Computational Finance) Assignment No. 2: Advanced Methods
Introduction
This paper reports the main work of Project2 for Computational Finance (Math 16:642:623). In this
project, some classical numerical methods are implemented by Monte Carlo simulation to approx-
imate the price of a European-style up-and-out barrier call option. Numerical solutions are then
compared with the closed-form solution obtained from a revised version of Black–Scholes–Merton
formula and a benchmark given by an online option pricing calculator. Besides benchmarking, this
paper also presents the convergence analysis and error estimation to verify the models.
Preliminary
In this project, we assume that the stock price is geometric Brownian motion and all the needed
variables are constant:
• Volatility σ = 0.3
• Strike K = 110
• Maturity T = 1 year
• Barrier U = 120
Closed-form Formula
According to Shreve, the price of an up-and-out call satisfies a Black-Scholes-Merton equation that
has been modified to account for the barrier. Besides, we also need to include the dividend yield
into that formula.
Eventually, the arbitrage-free barrier call option price implied by Black-Scholes-Merton model
Project № 2 Page 1
is:
−dT S(0) S(0)
V (0) = S(0)e N δ+ T, − N δ+ T,
K B
−rT S(0) S(0)
−e K N δ− T, − N δ− T,
K B
− 2(r−d) −1
B2
−dT S(0) σ2 B
− S(0)e N δ+ T, − N δ+ T,
B KS(0) S(0)
− 2(r−d) +1
B2
−rT S(0) σ2 B
+e K N δ− T, − N δ− T,
B KS(0) S(0)
= S(0)e−dT I1 − KI2 − S(0)e−dT I3 + KI4
where,
1 1 2
δ± (τ, s) = √ log s + (r − d ± σ )τ
σ τ 2
The prices of up-and-out barrier call option calculated by our program is:
c = 0.0507592
Benchmark
This result is identical to the benchmark that we use, as is shown in the following screen-shots:
Numerical Methods
First, we use Euler method to generate stock price process and calculate the payoff for each itera-
tion. The SDE of stock price is given as:
We take 252 time steps per year to simulate the process. Euler method uses the relation:
X̂(ti+1 ) = X̂(ti ) + a(ti , X̂(ti ))(ti+1 − ti ) + b(ti , X̂(ti ))(W (ti+1 ) − W (ti ))
Project № 2 Page 2
with initial condition X̂(0) = X(0), where the Brownian motion increments may be generated using:
p
W (ti+1 ) − W (ti ) = ti+1 − ti Zi+1
Besides the stock process, we also need to generate a maximum process M (t) = max{S(u) :
0 ≤ u ≤ t} to determine the payoff of the barrier option. At time t = T , the payoff is given as:
where 1A is an indicator function which has value one if the condition is true and zero otherwise.
We use in total J = 10, 000 paths to do the simulation and the estimator of option price is given
as the mean of each discounted payoff:
n
1X j
V̂n = V
n
j=1
cEuler = 0.0678352
Then, in order to see how good is the estimator, we do error analysis for Euler method. The
standard error (SE) of a parameter is the standard deviation of its sampling distribution or an es-
timate of the standard deviation. The option price is estimated by the mean of all the simulations.
Thus, the standard error can be calculated as:
sY
ε= √
n
Here, use Yi represents an i.i.d random variable (in our case, it is one of the estimated prices
generated by sample paths, Yi = V i ). Then Ŷ (= V̂n ) is an unbiased estimator.
The standard error for Euler method in our program is:
εEuler = 0.00590545
Consider pairs of random variables (Yi , Ỹi ), i = 1, ..., n. We say that the pair (Y, Ỹ ) is antithetic if
Y = g(Z) and Ỹ = g(−Z), where Z is a standard normal random variable and g(z) deterministic.
Project № 2 Page 3
Based on the definition of antithetic variates, one can see that if S(t) is geometric Brownian
˜ )) forms an antithetic pair. Thus, the stochastic differential equations of this
motion, then (S(T ), S(T
pair are given as:
√
S(ti + h) = S(ti )(1 + rh + σ hZi+1 )
√
S̃(ti + h) = S̃(ti )(1 + rh + σ hZi+1 )
where (Yi , Ỹi ) are the discounted payoff of the up-and-out option.
The call option’s price calculated by this antithetic variates method is:
cAV = 0.0772661
Similarly, by treating ŶAV as the estimator of the price, the standard error of this estimator is:
εAV = 0.0044526
which is smaller than the standard error generated by classical Euler method, showing that we
obtain a variance reduction by using AV method.
In control variates method, we consider a pair of random variables (Xi , Yi ), i = 1, ..., n, where Yi is
the discounted payoff that we want to calculate (in our case, Yi is the discounted payoff of up-and-
out option). We can use a known (or easily estimable) mean E[X] to give a control variate estimator
for E[Y ] as:
n
1X
E[Y ] = Ȳ (b) = (Yi − b(Xi − E[X]))
n
i=1
Here, we can use vanilla call option’s price with the same strike as X variable, since its closed-
form price can be easily calculated from Black-Scholes-Merton formula.
The optimal coefficient b for this method is given as:
Cov[X, Y ]
b∗ =
V ar[X]
In practice, we can first estimate the optimal coefficient by a set of n1 simulations. The estimator
is give by: Pn1
i=1 (Xi− X̄)(Yi − Ȳ )
b̂n1 =
(Xi − X̄)2
Then using another set of n2 simulations, we can obtain Ȳ (b), which is the estimator for E[Y ].
Project № 2 Page 4
The call option’s price calculated by this control variates method is:
cCV = 0.0675786
Question
• To answer this question, we print out the b∗ and ρ when calling the Control method function
with different inputs. The results are lised in the following table.
Notice that when barrier U is getting larger, b∗ and ρ are tending to 1 and the option price is
tending to a vanilla call. Intuitively thinking, this is because when barrier is getting larger, the
stock price is less likely to knock out that line and the barrier option is tending to a vanilla
option. This is as what we expect. Thus, our program is verified.
• For this question, we use asset price (S(t)) as the control variate X, and vanilla discounted
payoff (which is the original X variable) as the estimated variable. Then implement the Control
method with different strikes. The results are listed in the following table. (see the top of next
page)
Notice that when K = 20, the option is deep in the money. Thus, b∗ and ρ are both equal
to one. Then when strike is getting larger, vanilla option is transferring into an out of money
option, in which case b∗ and ρ are getting smaller.
• From the results in Numerical Solution section, we find that using Antithetic method can re-
duce the standard error compared with standard Euler method. However, the run time of
Antithetic method is longer than Euler. Thus, there is a trade-off between higher speed and
less deviation.
Project № 2 Page 5
Strike(K) b∗ ρ run time(s) Vanilla Option Price
20 1 1 0.336168 78.4156
80 0.872208 0.979331 0.348753 24.3617
100 0.662269 0.920891 0.365409 13.066
120 0.414011 0.802451 0.364320 5.56197
200 0.0237219 0.314527 0.355004 0.219089
Convergence Analysis
In this part of analysis, we choose different numbers of Monte Carlo paths and different time steps
to check whether the solution is converging. The results are listed below.
As we can see from the above two tables, the numerical solutions are converging to the exact
closed-form price. One might think the convergence is not significant enough, we think one main
reason is the number of steps and time steps are still not big enough. Thus, we set big numbers
for both of them and get a much better result as is shown in the following figure.
Project № 2 Page 6