The Whaley function calculates the theoretical price, sensitivities, and the implied volatility of options using Giovanni Barone-Adesi and Robert Whaley's model. See Vanilla Option Models for a further explanation.
Whaley |
(OptionType, ModelStatistic, AssetPrice, StrikePrice, TimeExpire, Volatility, InterestRate, YieldRate, MarketPrice, TimeFormat, DivAmount, TimeExDiv, DivFrequency, DividendStyle, InterestType, YieldType) |
WhaleyDivArr |
(OptionType, ModelStatistic, AssetPrice, StrikePrice, TimeExpire, Volatility, InterestRate, YieldRate, Dividends, MarketPrice, TimeFormat, InterestType, YieldType) |
Note: Optional arguments are shown in Italics. MarketPrice is not Optional for the Implied Volatility Calculation.
Individual Models within the Whaley Model are as follow:
Black Model |
InterestRate = YieldRate |
Black-Scholes Model |
YieldRate = 0 |
Garman-Kohlhagen Model |
YieldRate = Foreign Interest Rate |
Argument |
Description |
OptionType |
Alphanumeric value indicating the type of option: •Call = 1 or "c" (case insensitive) •Put = 2 or "p" (case insensitive) •Straddle = 3 or "s" (case insensitive) |
ModelStatistic |
Numeric value indicating the type of function required for the return value: •Theoretical = 1 •Delta = 2 •Gamma = 3 •Theta = 4 •ImpliedVol = 5 •Vega = 6 •Rho = 7 •Psi = 8 •Lambda = 9 •IntrinsicValue = 10 •StrikeSensitivity = 11 •TimeValue = 12 •ImpliedStrike = 13 |
AssetPrice |
The price of the underlying asset. Must be > 0. |
StrikePrice |
The price at which the asset can be purchased if the option is a call or sold if the option is a put. Must be > 0. |
TimeExpire |
Time expressed in either Days or Years (depending on the TimeFormat value) until the options expiration. Must be > 0. |
Volatility |
Annualized volatility of the underlying security. Must be > 0. |
InterestRate |
Risk-free interest rate expressed as a percentage. This rate is interpreted as a continuously compounded rate unless otherwise specified in the InterestType argument. Must be > 0. |
YieldRate |
Yield expressed as a percentage (dividends or interest yield) of the underlying asset price. For futures contracts, the Yield Rate is the same as the Interest Rate. This rate is interpreted as a continuously compounded rate unless specified otherwise in the YieldType argument. |
Dividends* |
A two-dimensional array or range of Dividend Dates and Amount pairs where the first column is the date and the second is the amount. The Dividend Dates are a range (array) of ascending unique values. All dividend dates and amounts must both be > 0.
As an example: Dividends Date Amount 0.0 0.20 0.5 0.15 1.0 0.30 1.5 0.25 2.0 0.15 2.5 0.40
*Used for the DivArr (Dividend Array) based model only |
MarketPrice |
Optional. The selling price of the option in the marketplace. This input is required when implied volatility and strike are calculated. Price must be > 0. |
TimeFormat |
Optional. Alphanumeric value indicating the format of the time arguments (i.e. TimeExpire, TimeExDiv, DivFrequency). If omitted, Days are used as the default. Specified as either: •Days = 0 or "D" (case insensitive) •Years = 1 or "Y" (case insensitive) |
DivAmount |
Optional. The amount of the dividend(s). If omitted, an amount of 0 is used. Amount must be > 0. |
TimeExDiv |
Optional. The time in Days or Years until the first dividend is received. If omitted, a value of 0 is used and therefore no dividends are assessed. Value must be > 0 for dividends to be considered. |
DivFrequency |
Optional. The time in Days or Years between dividend payments. If omitted, a value of 0 is used and therefore the only dividend assessed occurs at the TimeExDiv time. The value must be > 0 for multiple dividends to be considered. |
DividendStyle |
Optional. Numeric value indicating the Style or method that dividends are handled. If omitted, the discrete cash method is used (i.e. DividendStyle = 0). •Discrete cash flow method = 0 •Continuous yield method = 1 |
InterestType |
Optional. Alphanumeric value indicating the type of InterestRate to use when evaluating the option. This value is converted to Continuously Compounded for the calculations. If omitted, a continuously compounded rate is used. |
YieldType |
Optional. Alphanumeric value indicating the type of YieldRate to use when evaluating the option. This value is converted to Continuously Compounded for the calculations. If omitted, a continuously compounded rate is used. |
Calculate all of functions for an American call option whose asset price 75 days from expiration of an option is $38, the exercise price of the option is $33, the risk-free interest rate is 6% per annum, the yield rate is 9% per annum, and the annual volatility is 35%. This means that AssetPrice = $38, StrikePrice = $33, InterestRate = 6%, YieldRate = 9%, TimeExpire = 75 days and Volatility = 35%. There are no dividends and all interest rates are considered continuous. So, |
Input |
|
Output |
|||
Variable |
Value |
|
Function |
Name |
Value |
ExerciseType |
American |
|
1 |
Theoretical: |
5.39209 |
OptionType |
Call |
|
2 |
Delta: |
0.82837 |
Asset |
38 |
|
3 |
Gamma: |
0.04669 |
Strike |
33 |
|
4 |
Theta: |
-0.00767 |
TimeExpire |
75 |
|
5 |
Implied Vol: |
0.37524 |
Volatility |
35% |
|
6 |
Vega: |
0.04140 |
InterestRate |
6.00% |
|
7 |
Rho: |
0.03462 |
YieldRate |
9.00% |
|
8 |
Psi: |
-0.03966 |
MarketPrice |
5.50 |
|
9 |
Lambda: |
5.83785 |
TimeFormat |
Days |
|
11 |
Strike Sensitivity: |
-0.79049 |
|
|
|
13 |
Implied Strike: |
32.86421 |
|
|
|
|
|
|
|
|
|
|
|
|
Calculate all of functions for the same option as the example above, but with dividends. The first dividend is expected to occur in 30 days and the second is expected to occur in 60 days or 30 days from the first dividend. The dividend amount is $1 for both dividends. So, |
Input |
|
Output |
|||
Variable |
Value |
|
Function |
Name |
Value |
ExerciseType |
American |
|
1 |
Theoretical: |
3.84855 |
OptionType |
Call |
|
2 |
Delta: |
0.72202 |
Asset |
38 |
|
3 |
Gamma: |
0.06053 |
Strike |
33 |
|
4 |
Theta: |
-0.01045 |
TimeExpire |
75 |
|
5 |
Implied Vol: |
0.64184 |
Volatility |
35% |
|
6 |
Vega: |
0.05292 |
InterestRate |
6.00% |
|
7 |
Rho: |
0.03623 |
YieldRate |
9.00% |
|
8 |
Psi: |
-0.03880 |
MarketPrice |
5.50 |
|
9 |
Lambda: |
7.12908 |
TimeFormat |
Days |
|
11 |
Strike Sensitivity: |
-0.67135 |
Div Amount |
1 |
|
13 |
Implied Strike: |
30.79260 |
Time Ex-Div |
30 |
|
|
|
|
Div Frequency |
30 |
|
|
|
|
For a further example on this model see the included Excel Template located in the root directory of the add-in. This example can be accessed through the Vanilla Options Template menu item after the add-in has been installed properly.
A list of all of the possible Error Messages is included for convenience.