Computer Science 286r Homework 3 In this homework, you will study the implied volatility smile defined by US equities options prices. Preparation ----------- Download the data set from either http://eecs.harvard.edu/~parkes/cs286r/spring08/options.tar or http://eecs.harvard.edu/~parkes/cs286r/spring08/optionsbysymbol.tar and read about the "DATA SOURCE" below. If you plan to use an EECS machine for your analysis, you can copy the data directly from /home/parkes/public_html/cs286r/spring08/options.tar (optionsbysymbol.tar). You may work with anyone you choose in groups of three to six, though large groups will need to answer an additional question. You may continue to work with the same group from Homework 2 if you like. Please email the instructor (cat@eecs.harvard.edu) the names of the members of your group before Monday at 11:59 pm. You are welcome to "divide and conquer" but every member of the group should be familiar with your answers. If you are having trouble finding a group, please email us as soon as possible. Assignment ---------- You should prepare a written submission and no more than four slides to present your results for questions 4-6 (excluding a title slide.) Both slides and writeups are due electronically as PDF or plain text by email at 11:59 pm, Monday, February 25. When we collected the options data, we computed the implied volatility of options prices using Black-Scholes and an annual risk-free rate of 5% (this is no longer an accurate rate for US dollars), the last trade price as the value of the underlying equity, and the bid/ask midpoint of the option price as the "price" of the option. For simplicity, we assumed the options were European options. Please answer questions 1-3 with concise, one-paragraph answers. 1. In what cases would the value of American and European options diverge? How might you account for this in an options pricing model? 2. Characterize the error in the implied volatility if your risk-free rate is too large or too small. 3. In some cases, the implied volatility is reported as zero (0.0000). For example, the following deep in-the-money Yahoo! Inc. options on Feb. 11, 2008 had a reported implied volatility of 0. These are the rows from the data set (described below): 2008-02-11 YHOO 29.89 6002341 CALL 2008-02-15 0.0000 12.50 YHQBV.X 15.75 0 17.10 17.55 2 -1 2008-02-11 YHOO 29.89 6002341 CALL 2008-02-15 0.0000 17.50 YHQBW.X 12.30 0 12.25 12.45 5 -1 2008-02-11 YHOO 29.89 6002341 CALL 2008-02-15 0.0000 22.50 YHQBX.X 7.40 0 7.25 7.50 50 -1 Explain why this might occur. How might one calculate the actual implied volatility when this happens (if possible)? Using the option prices and strike prices for "front month" options, compute an implied volatility smile defined by the set of simultaneous options quotations with the same expiration date for a particular equity. Design your program so that you can later substitute a new pricing model and everything else stays the same. Compute the implied volatility using an options pricing model OTHER THAN the vanilla Black-Scholes method described in class and the Newton-Raphson method used to compute the implied volatility numbers in the data set. You can use a method other than Black-Scholes, or an approximation method other than the Newton-Raphson method. Examples include: * Approximations to Black-Scholes. For an example with citations, see: http://www.eecs.harvard.edu/~parkes/cs286r/spring08/reading3/chambers.pdf * Merton / Heston / Bates family of options pricing models * Monte Carlo * Binomial pricing model * Fast Fourier Transform-based numerical methods You may choose a subset of the entire data set, such as "equities with more than $100M notional value traded each day", or "small caps", but it should be large enough for your results to be compelling. The file http://eecs.harvard.edu/~parkes/cs286r/spring08/stats.txt contains various statistics about the underlying equities. 4. Implement a method to detect "bumps" in the implied volatility smile, that is, where a quoted option price is inconsistent with the other options prices. Investigate what happens to the prices and implied volatilities of these outliers in the future: do they tend to revert to a more consistent smile? Do they tend to predict where the smile is going? (Perhaps option trading volume plays a role here, but that is beyond the scope of the assignment.) 5. Assuming your calculations take zero real time, could you use your findings to make money by betting that outliers will mean revert to your calculated surface within 30 minutes? Assume commissions and fees of $5 plus $0.50 per contract per side. (Remember that options are quoted in contracts of 100 shares, so a $1 option is an investment of $100.) Don't forget to state your assumptions about execution prices: your orders may not be executed at the last traded price or even the bid/ask midpoint. 6. [REQUIRED ONLY FOR GROUPS OF FIVE OR SIX] Now, instead of trying to exploit a statistical arbitrage as an independent trader, imagine you are a market maker in equities options. Assuming that some trades occur at your posted bids and asks, could you benefit by using your models to make your quoted bid/ask prices more consistent across the entire implied smile? -------------------- NOTES ON DATA SOURCE -------------------- We are providing data for 20-minute options quotations on the major US equities options. These were collected by taking snapshots every 30 minutes from a major Internet finance website. The data are separated into files for each day and snapshot time and compressed using gzip. Please note that these are the SNAPSHOT times for delayed quotations (hence the 9:46 snapshot to avoid any clock skew between the collector and the data source.) This should not have any impact on your calculations, but you may wish to consider the market as operating from 9:45 to 16:45, rather than 9:30 to 16:30. The files are separated by date and time: YYYY-MM-DD/HH:MM.gz e.g. 2007-11-05/10:15.gz The data are tab delimited, in the following format: QUOTE_DATE TICKER LAST_UNDERLYING_PRICE UNDERLYING_VOLUME_TODAY CALL_OR_PUT EXPIRATION_DATE IMPLIED_VOLATILITY STRIKE_PRICE OPTION_SYMBOL LAST_OPTION_TRADE RESERVED1 OPTION_BID OPTION_ASK OPTION_VOLUME_TODAY RESERVED2 In the "optionsbysymbol.tar" file, there is an additional QUOTE_TIME field before the other fields. RESERVED1 and 2 are always 0 and -1, respectively, and may be ignored. The OPTION_SYMBOL is a 5-letter symbol plus a trailing ".X". The 5 letters represent a 3-character code for the underlying equity, a 1 character code representing the expiration month and whether the option is a call or put, and a 1 character code representing the strike price. See http://www.888options.com/basics/symbols_and_quotes.jsp for more details. We calculated the implied volatility using the Perl Math::Business::BlackScholes module: http://search.cpan.org/~anders/Math-Business-BlackScholes-0.06/