Problem A: Asian Option Pricing using Monte Carlo Control Variate. The payoff of an arithmetic Asian call option is:
.
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:
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:
- The price of a geometric Asian option in the Black-Scholes model is given by:
where:
such that is adjusted sigma and N is the total number of trading days (T 252).
Use the above formula to price this geometric Asian call option.
- Implement a Monte Carlo scheme to price an arithmetic Asian call option
). Use M = 1,000,000 simulations. Record the answer, a confidence interval and the time it takes to obtain the result.
- Implement a Monte Carlo scheme to price a geometric Asian Call option
- 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:
Note that b is actually the slope of a regression line Y = a+bX +. Please also record the price of the arithmetic Pasim and the geometric Pgsim.
- Calculate the error of pricing for the geometric Asian:
- Calculate the modified arithmetic option price ( ) as:
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.
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.
- Please identify and select a specific sectors 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.
- 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.
- Estimate the correlation matrix for the 4 stocks based on historical data.
- 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, 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 Please report basic statistics (mean, standard deviation, skewness, and kurtosis) for each stock.
- 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 + StdWt
Get the values for and in a similar way with what you did in part 2.
- 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.
- 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:
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.
Calculate the premium for this option.
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) todays date, todays 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.
- Compute the implied volatilities from the BlackScholes model, using the given file. For this purpose, implement any efficient rootfinding 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,).
- Compute and plot the implied volatility surface. For this purpose, you should interpolate the points {Ki,Tj,ij}, with i = 1,,20, j = 1,, Hint. Consider a cubic spline interpolation in 2 dimensions. You may use any package or toolbox that computes the interpolation.
- For the points on the surface you just calculated is the nonarbitrage condition holding?
- A conceptually different volatility model, the socalled 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), Dupires local volatility is given by:
, (1)
where r 0 is the riskfree 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:
, where
. (3)
Calculate Dupires 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.
- 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?
- 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 Dupires 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, BlackScholes price, and the prices obtained using Dupires local volatility.
- 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.
Reviews
There are no reviews yet.