FITE7405: Assignment 3 (20%)
1
General Information
In this assignment, you will implement a mini option pricer which can price various options
including European options, Basket options, Asian options, and American options. The
computational methods available in the pricer include analytical closed-form formulas, Monte
Carlo simulation, and the binomial tree method.
You can freely choose your programming language and platform. In this assignment,
in general you should not use any third-party code except some basic statistics functions
(e.g., normal random variable generator, normal cumulative distribution function, and sample
covariance function, etc.). If you are not sure, please check with us first.
You are welcome to work independently or in groups (up to 3 team members) on this
assignment.
2
Mathematical Background
For this assignment, we assume that an asset follows the geometric Brownian motion presented
in our lecture
S(T) = S(t)e(r−½¼0²)A+o√ĀZ
If we have two assets, we assume their asset prices can be described by
S₁(T)
S2(T)
=
=
Si(t)e(A+√ĀZ(1)
S2(t)er-A+02√AZ(2)
(1)
(3)
where σ; are the respective volatilities of the two assets, A = T − t, Z(1) and Z(2) are both
standard normal random variables, and p(Z(¹), Z(²)) = p.
Similar to Asian options, there are two types of baskets. For a geometric mean basket, its
level at time t is
1/n
Bg(t) = | [[ S(t)
-(18)
It can be shown that Bg(t) follows a geometric Brownian motion with drift μBg
1
and volatility defined by
0Bg
0Bg
Σi±1Σ=1σiσj Pij
Σ
n
1
μBg
=
r -
2
n
(4)
(5)
where is the correlation between standard normal random variables Z(i) and Z(j)
Pi,j
sponding to asset i and asset j.
corre-
The call/put options on a geometric mean basket have respective payoffs at maturity T
max(B,(T) – K,0), max(K – Bg(T), 0).
Then their values are given by
CBg
PBg
where d₁
=
√T
=
=
=
e-T (B₂(0)e"BTN(d₁) - KN (d2))
Т
e-T (KN(-d₂) – B₂(0)e"³,TN(−₁₁));
е
(6)
(7)
In(Bg(0)/K)+(µBg+1½/0³½³g)²
T
and B,(0) = (ПI²±₁ S¿(0))¹n
1
OBg
An arithmetic mean basket is defined by
n
Ba(t)
=
n
Si(t).
As there are no closed-form formulas for call/put options on such basket, you are required to
implement a Monte Carlo pricer to price them. Their payoffs at maturity T are
-
max(Bɑ(T) – K,0), max(K – Ba(T),0).
Similar to the Asian options, you can use the option on the geometric mean basket as a control
variate.
3 KIKO Put Option with Rebate
As discussed in our lecture, we consider a put option with knock-in and knock-out barriers
(KIKO put). Specifically, the payoff function at maturity T is
Jo,
if S(ti) > L,
max(K – S(T),0), if S(ti) ≤ L,
i = 1, 2, . . ., n
for some tį
(8)
where ti =
¹¹T, i
=
1,...,n, S(ti) is the asset price at ti, K is the strike price, and L is a
given down-and-in barrier which satisfies L < S(to). Moreover, at any time tį, if S(ti) ≥ U,
the option terminates and pays out R dollars to the option holder right away. Here U is a
positive up-and-out barrier, that is, U > S(to), and R is the rebate payment. 4 Implementation Tasks
The implementation tasks include:
1. Implement Black-Scholes Formulas for European call/put options.
2. Implied volatility calculations.
3. Implement closed-form formulas for geometric Asian call/put options and geometric basket
call/put options.
4. Implement the Monte Carlo method with control variate technique for arithmetic Asian
call/put options.
5. Implement the Monte Carlo method with control variate technique for arithmetic mean
basket call/put options. For the arithmetic mean basket options, you only need to
consider a basket with two assets.
6. Implement the Quasi-Monte Carlo method for a KIKO-put option. Calculate the price
and the Delta of a given option.
7. The Binomial Tree method for American call/put options.
8. A graphical user interface for users to easily price various options with your pricer.
5 Input Parameters and Output Results
You option pricer should provide the following input parameter list for each type of option:
• European call/put option: the spot price of asset S(0), the volatility σ, risk-free interest
rate r, repo rate q, time to maturity (in years) T, strike K, and option type (call or
put).
• Implied volatility calculator: the spot price of asset S(0), risk-free interest rate r, repo
rate q, time to maturity (in years) T, strike K, the option premium, and the option
type (call or put).
• American call/put option: the spot price of asset S(0), the volatility σ, risk-free interest
rate r, time to maturity (in years) T, strike K, the number of steps N, and option type
(call or put).
• Geometric Asian option: S(0), σ, r, T, K, the number of observation times for the
geometric average n, and the option type (call or put). With the parameters n and T,
you should assume that the geometric average involves S(1), S(²), . S((n-1)T), and
S(T).
"
n
• Arithmetic Asian option: it has all input parameters for geometric Asian option and
two extra input parameters. One is the number of paths in the Monte Carlo simulation.
The other one is to specify the control variate method (no control variate, or geometric
Asian option). Your pricer should output the 95% confidence interval.
• Geometric basket option: the spot prices of two assets S₁ (0) and S2(0), the volatilities
of the two assets σ1 and σ2, r, T, K, the correlation p, and option type (call or put).
3 • Arithmetic basket option: it has all input parameters for geometric basket option and
two extra input parameters. One is the number of paths in the Monte Carlo simulation.
The other one is to specify the control variate method (no control variate, or geometric
basket option). Your pricer should output the 95% confidence interval.
• KIKO put option: S(0), σ, r, T, K, lower barrier L, upper barrier U, the number of
observation times n, and the cash rebate R.
6 Test Cases
=
3, and S(0)
=
You can assume r = 0.05, T
100. The number of paths in Monte Carlo
simulation is m = 100,000. Note that for the Monte Carlo implementation, please explicitly
fix the initial seed/state of the random number generator so that the results from your program
are reproducible. You should test the following cases for each type of options:
• Asian options:
σ K
n
Туре
0.3 100 50
Put
0.3 100 100
Put
0.4 100 50
Put
0.3 100 50
Call
0.3 100 100 Call
0.4 100 50 Call
For the arithmetic Asian option, test the MC without/with control variate.
• Basket options:
S1(0) S2(0) K 01 02 ρ
Туре
100
100
100 0.3 0.3
0.5
Put
100
100
100 0.3 0.3
0.9
Put
100
100
100 0.1 0.3 0.5
Put
100
100
80 0.3 0.3 0.5 Put
100
100
120 0.3 0.3 0.5 Put
100
100
100 0.5 0.5 0.5
Put
100
100
100 0.3 0.3
0.5
Call
100
100
100 0.3 0.3
0.9
Call
100
100
100 0.1 0.3
0.5 Call
100
100
80 0.3 0.3
0.5 Call
100
100
120 0.3 0.3
0.5
Call
100
100
100 0.5 0.5
0.5
Call
For the arithmetic basket option, test the MC without/with control variate. For other types of options, you can design your own test cases.
7 Report
You need to submit a report consisting of the following sections:
⚫ List the contributions to the assignment from each team member. This is for our
information only and doesn't affect the marks each group/group member receives.
• Describe the user interface of your mini option pricer. This is to help us learn how to
run your pricer.
• Describe the functionalities of each class/function. This is to help us understand your
code. Keep this part short while informative.
• Test cases and analysis. For each type of options, test your pricer with different param-
eters and analyze how each parameter affects the option price.
• Extensions. If you have implemented something interesting beyond the requirements of
the assignment, please present it here.
Marking Scheme
● Implementation/Coding (80 marks). The correctness and reliability of your code will
be examined.
=
Closed-form formula implementation for European/geometric Asian/geometric Bas-
ket options (10 marks).
Monte Carlo option pricing (50 marks).
– Implied volatility calculation (5 marks).
- Binomial Tree method. (15 marks).
• Testing and Report (20 marks). The report doesn't have to be long. Please keep it
within 5 pages.
9 Possible Extensions
When developing a tool, it is important to foresee potential additional requirements for ex-
tensions so that you could have a proper design initially. In this section, I try to list some
possible extensions to your mini option pricer. They are provided here for information only,
and you don't have to implement them in this assignment.
• Price options on a basket with more than two assets.
• Price more generic options. In theory, Monte-Carlo simulation can price any path-
dependent options without early exercises. So it is very often you will be asked to price
a new type of option quickly.
5