Learn R Programming

fOptions (version 200.10058)

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: ll{ RollGeskeWhaleyOption Roll, Geske and Whaley Approximation, BAWAmericanApproxOption Barone-Adesi and Whaley Approximation, BSAmericanApproxOption Bjerksund and Stensland Approximation. }

Usage

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

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.
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
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
## 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]
   xmpOptions("Start: Roll-Geske-Whaley > ")
   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:
   xmpOptions("Next: BAW Approximation > ")
   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:
   xmpOptions("Next: BS Approximation > ")
   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