Learn how to price American call options with the Roll-Geske-Whaley method, and get an Excel spreadsheet.
Unlike European options, no closed-form solution exists to price American options. Quantitative analysts have to employ other techniques.
These include analytic approximations (include Barone-Adesi & Whaley, Bjerksund & Stensland and Ju & Zhong), binomial and trinomial trees, and Monte-Carlo methods.
However, American call options with no dividends are often priced as European options, with the standard Black-Scholes model. This is because early exercise offers no benefits to the option holder.
But if the same American call option pays dividends, then early exercise may be worthwhile. In the next section, we’ll learn about a popular approximation used to price American calls that pay a single dividend.
The Roll-Geske-Whaley Method
American call options that pay a single-dividend can be priced with the Roll-Geske-Whaley approximation. Roll (1977) first proposed this approach, with Geske (1979) extending the work. Whaley (1981) later corrected errors in the original derivation.
The method constructs an American call from a compound option consisting of long and short European calls; further technical information can be found here.
The Roll-Geske-Whaley approximation is defined by the following equations.
where
- N() is the cumulative normal distribution
- M(a; b; ρ) is the cumulative bivariate normal distribution
- S is the asset price
- X is the strike price
- D is the dividend
- t is the time to dividend
- T is the time to expiry
Note that S* is the ex-dividend stock price, and is solved iteratively. The bisection method is a popular approach, and is used in the spreadsheet below.
The Roll-Geske-Whaley method, although popular, is inaccurate under certain circumstances; for example, if a dividend is paid late in the option’s life. This can also lead to opportunities for arbitrage.
Download Excel Spreadsheet to Price American Options with the Roll-Geske-Whale Method
Should work now
What is the password to the VBA code?