Description
Problem A: Asian Option Pricing using Monte Carlo Control Variate.
The payoff of an arithmetic Asian call option is:
1
N + 1
X
N
i=0
Sti − K
!
+
.
Its value may be computed using straight Monte Carlo simulations. However, in
order to obtain a small standard error, the number of simulations must be very
high. To solve this computationally extensive problem, we will use the payoff
of a geometric Asian call option as the control variate:
Y
N
i=0
Sti
! 1
N+1
− K
+
The idea is to use the known analytic price of the geometric Asian and the
distance between MC simulations to obtain an approximate for the analytical
formula for the arithmetic Asian price.
In this problem we consider r = 3%, σ = 0.3, S0 = 100, and assume the goal
is to price an arithmetic Asian call option with strike K = 100 and maturity
T = 5.
We also assume the asset follows the standard log-normal/geometric Brownian motion model:
S(∆t) = S(0)e
((µ− σ2
2
)∆t+(σ
√
∆t))
(a) The price of a geometric Asian option in the Black-Scholes model is given
by:
Pg = e
−rT
S0e
ρT N(d1) − KN(d2)
where:
ρ =
1
2
r −
1
2
σ
2 + ˆσ
2
σˆ := σ
s
2N + 1
6(N + 1)
such that ˆσ is adjusted sigma and N is the total number of trading days
(T ∗ 252).
d1 :=
1
√
Tσˆ
ln
S0
K
+
ρ +
1
2
σˆ
2
T
d2 :=
1
√
Tσˆ
ln
S0
K
+
ρ −
1
2
σˆ
2
T
Use the above formula to price this geometric Asian call option.
(b) Implement a Monte Carlo scheme to price an arithmetic Asian call option
(P
sim
a
). Use M = 1, 000, 000 simulations. Record the answer, a confidence
interval and the time it takes to obtain the result.
(c) Implement a Monte Carlo scheme to price a geometric Asian Call option
(P
sim
g
).
(d) Using M = 10, 000 simulations and the same exact random variables create:
• numbers Xi which are M replications for the arithmetic Asian Option
price
• numbers Yi which are M replication for the geometric Asian Option
price
Finally calculate b
∗
such that:
b
∗ =
PM
i=1(Xi − X)(Yi − Y )
PM
i=1(Xi − X)
2
Note that b
∗
is actually the slope of a regression line Y = a+bX +ε. Please
also record the price of the arithmetic P
sim
a and the geometric P
sim
g
.
(e) Calculate the error of pricing for the geometric Asian: Eg = Pg − P
sim
g
(f) Calculate the modified arithmetic option price (P
∗
a
) as:
P
∗
a = P
sim
a − b
∗Eg
Compare with the results in (b). Comment. Vary the value of M in part
(d). What do you observe.
Bonus For this problem apply the Asian option pricing in practice. Download from
the Bloomberg terminal Asian option data for an equity at your choice.
Consider five different maturities and five strike prices. Construct a table
and repeat the parts (a) to (f) using your data. In order to access Asian
options for your equity, follow the instruction below. For example, if you
want to access Asian options on IBM Us Equity:
• Enter IBM EQUITY OMON. OMON function stands for Option Monitor.
• On the OMON page, type OVME. OVME function (Option Valuation)
is Bloomberg main pricing application for options on equity, indexes,
funds, bonds, bond futures and short term interest rate futures.
• On the top of the screen, you will find ”Product” tab. Under this tab,
click on the ”show all styles”. You will find all types of options.
• Click on number 17 which is Asian option.
• You can click on the ”Matrix” subtab to see your data as a matrix.
You can modify this matrix by checking/unchecking variables at the
right side of the screen. For this specific question, you can check strike
prices and maturities.
3
Problem B: A portfolio construction problem. In this question, you
need to create a portfolio which replicates the behavior of a specific select sector SPDR ETF. The goal of this question is to gain a deep understanding in
multivariate Monte-Carlo simulation and option pricing.
1. Please identify and select a specific sector’s SPDR ETF, for example XLF,
XLE, etc. This site http://finviz.com/ presents details about the tickers in each sector. In the sector you choose download 4 equity prices since
2012. Please only select equities that trade at $5 or above. Try picking
equities at random among the ones that have this criteria. Using the same
equities is a sure method to create suspicions.
2. For the 4 equities that you chose, we will use the geometric BM:
dSt = θ1Stdt + θ2StdWt
Using the data you downloaded, please estimate the parameter values
(θ1, θ2) for each equity. Please report these values.
3. Estimate the correlation matrix Σ for the 4 stocks based on historical
data.
4. Using the correlation matrix in the part 3 and the parameters you estimated in part 2 generate Monte-Carlo paths for the 4 stocks. Use this matrix to generate correlated increments for your Monte Carlo paths. Please
use the Euler-Milstein scheme for generation. Use T = 1 year, ∆t =
1
255
and n = 1000 paths in your simulation. Once it is done, you only need to
keep the final value ST for each stock. You should have 4 vectors in total
each with n replications. Please report basic statistics (mean, standard
deviation, skewness, and kurtosis) for each stock.
5. Download daily data for the main ETF for the same exact period as before.
We will fit a geometric Brownian motion to it:
dSt = µStdt + σStdW t
Get the values for µ and σ in a similar way with what you did in part 2.
6. Run a multivariate regression using the historical data. The response
is the ETF return and the predictors are the 4 stocks you chose earlier.
Please record the regression coefficients. These are going to be the weights
wi for i ∈ {1, 2, 3, 4} for the basket option we will price next.
7. We will price a nonstandard contract next. The contract buyer has the
option to exchange 1 ETF share with a weighted average of the 4 stocks.
Specifically, denote with ST the ETF value and with S1(T), . . . , S4(T) the
stock value for the 4 equities. The option payoff is:
X
4
i=1
wiSi(T) − ST
!
+
4
use T = 1 year. Calculate the option price today (premium). What if the
buyer has the option to exchange the weighted average for the ETF.
ST −
X
4
i=1
wiSi(T)
!
+
Calculate the premium for this option.
5
Problem C. Local volatility. We shall consider in this problem two volatility
models: implied and local volatility, and compare them from the perspective of
pricing, numerical efficiency, and stability. Please find the attached file SPX.xls,
containing option prices for the S&P 500 index for different maturities and
strikes, with the following structure: on the first row you are given (in this
order) today’s date, today’s price, and the interest rate in percents, assumed
constant. The dividend yield is assumed 0. Starting with row 2, a four column
table is given, containing the expiry date, time to maturity (calculated from the
expiry date), the strike price and the European call option price. Please note
that the dates are given in a number format, and the difference between any
two cells represent the number of days. Use this file to answer the rest of this
problem.
(a) Compute the implied volatilities from the Black–Scholes model, using the
given file. For this purpose, implement any efficient root–finding method
to compute the roots (or zeroes) of your function. You should also produce
a plot of the points {Ki
, Tj , σij}, with i = 1, . . . , 20, j = 1, . . . , 4 in 3–
dimensions, in the space (K, T, σ).
(b) Compute and plot the implied volatility surface. For this purpose, you
should interpolate the points {Ki
, Tj , σij}, with i = 1, . . . , 20, j = 1, . . . , 4.
Hint. Consider a cubic spline interpolation in 2 dimensions. You may use
any package or toolbox that computes the interpolation.
(c) For the points on the surface you just calculated is the non–arbitrage condition holding?
(d) A conceptually different volatility model, the so–called local volatility, introduced by Dupire in [1], gives the volatility in terms of (K, T) in a nonparametric way, and is model independent.
Assuming that we are given European option prices C = C(K, T), Dupire’s
local volatility is given by:
Σ(K, T) = s ∂C
∂T + (r − q)K ∂C
∂K + qC
1
2K2 ∂2C
∂K2
, (1)
where r ≥ 0 is the risk–free interest rate and q ≥ 0 is the dividend yield.
Further, by noting that the implied volatility σ is a function of strike and
expiry, i.e., σ = σ(K, T), the partial derivatives in (1) can be obtained with
respect to σ, i.e. the local volatility function can be expressed as a function
of implied volatility rather than of option prices:
Σ(K, T) =
vuut
2σ
∂σ
∂T (T − t) + σ
2 + 2σ(r − q)(T − t)K ∂σ
∂K
1 + Kd1
∂σ
∂K
√
T − t
2
+ K2(T − t)σ
∂2σ
∂K2 − d1
∂σ
∂K 2 √
T − t
,
(2)
where
d1 =
ln S
K + (r − q +
1
2
σ
2
)(T − t)
σ
√
T − t
. (3)
Calculate Dupire’s local volatility {Ki
, Tj , Σij}, with i = 1, . . . , 20, j =
1, . . . , 4 using both formulations. Compute and plot the local volatility
surface in the space (K, T, Σ) using a cubic spline interpolation. Compare
with the implied volatility surface from part (b).
Hint. Use the interpolated implied volatility surface from part (b) and use
finite differences to compute the partial derivatives of the implied volatility
with respect to strike, maturity, and second partial derivative with respect
to strikes. Then use the formula (2) to compute the local variance Σ2
(K, T).
Two issues remain to be addressed: how to get rid of negative values in the
local variance (one can use linear interpolation) and 3D interpolation of the
LV surface.
(e) Calculate the price of an European option C(t, S; T, K), with the volatility
equal to Σ(K, T) instead of σ. Can you calculate the price of this option?
How? Calculate the option prices in the file using the local vol. Compare
with the market prices you downloaded. What can you observe?
(f) Combine and present the results in a table with the following columns:
time to maturity, strike price, option market price, implied volatility, local
volatility, price obtained using Dupire’s local volatility. You should consider
only the outputs corresponding to the pairs (Ki
, Tj ), not the interpolated
values. Comment on your findings. Also, produce a new file, SPXvolatility.xls, that would add the following columns to the existing ones: implied
volatility, local volatility, Black–Scholes price, and the prices obtained using
Dupire’s local volatility.
(g) Download using the Bloomberg terminal option data for an equity of your
choice. You should consider at least 5 different maturities and 20 strike
prices. Construct an Excel file with the same structure as SPX.xls. Repeat
the parts (a)–(f) using your file. Note that you need to proper implement
all the parts above, to make sure that your code will work with the new file.
Also, the code that you submit will be tested with our file having the same
structure as SPX.xls, for which the results are known. To get full credit in
this questions, your results should match with the correct ones.
Bonus The bonus isn’t required by most students. However if your situation demands it for this bonus problem please read the article at: http://www.
stat.purdue.edu/research/technical_reports/pdfs/2005/tr05-02.pdf.
Then implement the methodology using general smoothing splines. The
same package used in the paper also exists in R “gss”. Then apply the
methodology to the same data as in the problem 3. Write a few sentences
comparing the results obtained here with the surface obtained in problem
3.
7
References
[1] Dupire, Bruno. Pricing with a smile. Risk Magazine, January 1994, Incisive
Media.
8

