Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
1 Methods for Asian options (50% of project credit)
1.1 Overview
An Asian option is an option where the payoff is not determined by the underlying price at
maturity, but by the average underlying price over some preset time interval. Asian options
were originated in Asian markets to prevent option traders from attempting to manipulate the
price of the underlying on the exercise date.
There are a variety of Asian options. We will consider one with the following payoff:
max(
1
N
N
∑
n=1
Sn?K,0),
where Sn are daily closing prices of the underlying and K is the fixed strike price. The option
corresponding to this payoff function is called a Fixed Strike Asian Call Option with Discrete
Arithmetic Average.
For the underlying process we will use the geometric Brownian motion
dSt = rStdt+σ(St , t)StdWt , (1)
allowing for the possibility that the volatility can depend on the current time t and current
value of underlying asset St . We refer to this as the local volatility model.
The aim of Part 1 of the project is to price Asian options by Monte-Carlo simulations,
employing different variance reduction techniques.
1.2 Particulars
Unless otherwise specified, use the following parameters:
The strike price is K = 110.
The interest rate is r = 0.05.
The local volatility is given by the function
σ(S, t) = σ0(1+σ1 cos(2πt))(1+σ2 exp(?S/50)). (2)
where σ0 = 0.2, σ1 = 0.3 and σ2 = 0.5. Time t is in years.
Assume there are 260 (working) days in a year.
Fix the number of sample paths to be N_paths = 1000.
2
1.3 Computational Tasks
Programme the local volatility Eq. (2) in a Python function and then write separate
functions to price an Asain option:
– without variance reduction (naive method);
– antithetic variance reduction.
– control variates (see below).
Use Euler time stepping with a time step of one day. Each function should return
option price and variance.
After you have fully tested your code, compare the different methods you have imple-
mented. For this, fix the time to maturity (expiry) to 3 years, i.e., T = 3. Then price
the option for three values of the spot price S0 = S(t = 0):
S0 < K, S0 = K, S0 > K
You are free to choose sensible values of S0 to give a good assessment of how the
methods are performing under different situations. For each method you have imple-
mented, evaluate the option at three values of S0. From the variances you can obtain
95% confidence intervals for each case.
Write code to plot option price as a function of spot price over the range S0 = 10
to S0 = 180. You only need to plot the option price using the method that gives the
smallest variance.
Using a method of your choice, programme a function to compute the delta for the
Asian option. You only need to implement one method, but ideally it should be a
method with small variance. Write code to plot the delta over the same range of spot
prices as the previous item.
1.4 Report contents
See general discussion of report contents in Sec. 3 and 4. The report should follow the
structure of the computational tasks with the aim to produce a report that leads the reader
clearly through the tasks undertaken. The report should summarize the overall picture of how
the various reduction methods perform and the dependence of option prices and deltas on S0.
A few specific things to consider for this part of the project are:
Your Python code should be commented so that it is clear how you have implemented
each variance reduction technique.
In addition, to make the report understandable independently of the Python code, you
include markdown cells that briefly state which variance reduction methods you have
3
implemented. You do not need to give an analysis of the variance reduction. These can
be short explanations of a few sentences.
Report the results of your runs for different methods and different S0 in a clear
and understandable form. Discuss the benefits and/or disadvantages of the different
methods. Taking into account additional cost of variance reduction computations,
determine which method is the most efficient for this problem.
The plots of option price and corresponding delta should be clear. You can be creative
here and plot prices and deltas for a few values of the time to maturity T to show
the evolution with time to maturity. You could also contrast Asian option prices with
the European counterparts. You should summarize and discuss your plots, possibly
including from a financial perspective.
1.5 Control variates
There are three possible control variates one can consider:
1. ZT ,
2. e?rT max(ZT ?K,0),
3. max
((
∏Nn=0Zn
) 1
N+1 ?K,0
)
,
where Zt is governed by geometry Brownian motion
dZt = rZtdt+σ Zt dWt , (3)
where r and σ are constant.
The volatility in our model varies, but not too much, so one can expect that the discounted
payoff for the Asian option computed along a geometric Brownian path in the local volatility
model will be highly correlated with a corresponding constant-volatility geometric Brownian
path. In practice, one simulates (3) alongside the simulation of (1). From these simulations,
the different control variates depending on Zt are available. A simple choice for σ is σ(S0,0),
(why?). Other choices are possible and might be better.
The first control variate is just the value of ZT at the final time, and hence has a known
expectation (mean), just as was used for European options. The second is the discounted
payoff for a European call option, and hence the expectation is given by the Black Scholes
formula.