Learn R Programming

fOptions (version 3042.86)

BasicAmericanOptions: Valuation of Basic American Options

Description

A collection and description of functions to valuate basic American options. Approximative formulas for American calls are given for the Roll, Geske and Whaley Approximation, for the Barone-Adesi and Whaley Approximation, and for the Bjerksund and Stensland Approximation.

The functions are:

RollGeskeWhaleyOption Roll, Geske and Whaley Approximation,
BAWAmericanApproxOption Barone-Adesi and Whaley Approximation,

Usage

RollGeskeWhaleyOption(S, X, time1, Time2, r, D, sigma,
    title = NULL, description = NULL) 
BAWAmericanApproxOption(TypeFlag, S, X, Time, r, b, sigma,
    title = NULL, description = NULL)
BSAmericanApproxOption(TypeFlag, S, X, Time, r, b, sigma,
    title = NULL, description = NULL)

Arguments

b

the annualized cost-of-carry rate, a numeric value; e.g. 0.1 means 10% pa.

D

a single dividend with time to dividend payout t1.

description

a character string which allows for a brief description.

r

the annualized rate of interest, a numeric value; e.g. 0.25 means 25% pa.

S

the asset price, a numeric value.

sigma

the annualized volatility of the underlying security, a numeric value; e.g. 0.3 means 30% volatility pa.

Time

the time to maturity measured in years, a numeric value.

time1, Time2

[RollGeskeWhaley*] - the first value measures time to dividend payout in years, e.g. 0.25 denotes a quarter, and the second value measures time to maturity measured in years, a numeric value; e.g. 0.5 means 6 months.

title

a character string which allows for a project title.

TypeFlag

a character string either "c" for a call option or a "p" for a put option.

X

the exercise price, a numeric value.

Value

RollGeskeWhaleyOption BAWAmericanApproxOption return the option price, a numeric value.

BSAmericanApproxOption returns a list with the following two elements: Premium the option price, and TriggerPrice the trigger price.

Details

Roll-Geske-Whaley Option:

The function RollGeskeWhaleyOption valuates American calls on a stock paying a single dividend with specified time to dividend payout according to the pricing formula derived by Roll, Geske and Whaley (1977).

Approximations for American Options:

The function BSAmericanApproxOption valuates American calls or puts on an underlying asset for a given cost-of-carry rate according to the quadratic approximation method due to Barone-Adesi and Whaley (1987). The function BSAmericanApproxOption valuates American calls or puts on stocks, futures, and currencies due to the approximation method of Bjerksund and Stensland (1993).

References

Barone-Adesi G., Whaley R.E. (1987); Efficient Analytic Approximation of American Option Values, Journal of Finance 42, 301--320.

Bjerksund P., Stensland G. (1993); Closed Form Approximation of American Options, Scandinavian Journal of Management 9, 87--99.

Geske R. (1979); A Note on an Analytical Formula for Unprotected American Call Options on Stocks with known Dividends, Journal of Financial Economics 7, 63--81.

Haug E.G. (1997); The Complete Guide to Option Pricing Formulas, Chapter 1, McGraw-Hill, New York.

Roll R. (1977); An Analytic Valuation Formula for Unprotected American Call Options on Stocks with known Dividends, Journal of Financial Economics 5, 251--258.

Examples

Run this code
# NOT RUN {
## All the examples are from Haug's Option Guide (1997)

## CHAPTER 1.4: ANALYTICAL MODELS FOR AMERICAN OPTIONS
       
## Roll-Geske-Whaley American Calls on Dividend Paying 
   # Stocks [Haug 1.4.1]
   RollGeskeWhaleyOption(S = 80, X = 82, time1 = 1/4, 
     Time2 = 1/3, r = 0.06, D = 4, sigma = 0.30)
      
## Barone-Adesi and Whaley Approximation for American 
   # Options [Haug 1.4.2] vs. Black76 Option on Futures:
   BAWAmericanApproxOption(TypeFlag = "p", S = 100, 
     X = 100, Time = 0.5, r = 0.10, b = 0, sigma = 0.25)
   Black76Option(TypeFlag = "c", FT = 100, X = 100, 
     Time = 0.5, r = 0.10, sigma = 0.25)  
     
## Bjerksund and Stensland Approximation for American Options:
   BSAmericanApproxOption(TypeFlag = "c", S = 42, X = 40, 
     Time = 0.75, r = 0.04, b = 0.04-0.08, sigma = 0.35)
# }

Run the code above in your browser using DataLab