File: AmericanOption.Rd

package info (click to toggle)
rquantlib 0.4.17-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,308 kB
  • sloc: cpp: 3,690; sh: 69; makefile: 6; ansic: 4
file content (81 lines) | stat: -rw-r--r-- 3,634 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
\name{AmericanOption}
\alias{AmericanOption}
\alias{AmericanOption.default}
\title{American Option evaluation using Finite Differences}
\description{
This function evaluations an American-style option on a common stock
using finite differences. The option value as well as the common first
derivatives ("Greeks") are returned.}
\usage{
\method{AmericanOption}{default}(type, underlying, strike,
		dividendYield, riskFreeRate, maturity, volatility, 
		timeSteps=150, gridPoints=149, engine="BaroneAdesiWhaley", 
		discreteDividends, discreteDividendsTimeUntil)
}
\arguments{
  \item{type}{A string with one of the values \code{call} or \code{put}}
  \item{underlying}{Current price of the underlying stock}
  \item{strike}{Strike price of the option}
  \item{dividendYield}{Continuous dividend yield (as a fraction) of the stock}
  \item{riskFreeRate}{Risk-free rate}
  \item{maturity}{Time to maturity (in fractional years)}
  \item{volatility}{Volatility of the underlying stock}
  \item{timeSteps}{Time steps for the \dQuote{CrankNicolson} finite
    differences method engine, default value is 150}
  \item{gridPoints}{Grid points for the \dQuote{CrankNicolson} finite differences method,
    default value is 149}
  \item{engine}{String selecting pricing engine, currently supported are
    \dQuote{BaroneAdesiWhaley} and \dQuote{CrankNicolson}}
  \item{discreteDividends}{Vector of discrete dividends (optional)}
  \item{discreteDividendsTimeUntil}{Vector of times to discrete dividends 
    (in fractional years, optional)}
}
\value{
  An object of class \code{AmericanOption} (which inherits from class
  \code{\link{Option}}) is returned. It contains a list with the
  following components: 
  \item{value}{Value of option}
  \item{delta}{Sensitivity of the option value for a change in the underlying}
  \item{gamma}{Sensitivity of the option delta for a change in the underlying}
  \item{vega}{Sensitivity of the option value for a change in the
    underlying's volatility} 
  \item{theta}{Sensitivity of the option value for a change in t, the
    remaining time to maturity}
  \item{rho}{Sensitivity of the option value for a change in the
    risk-free interest rate}
  \item{dividendRho}{Sensitivity of the option value for a change in the
    dividend yield}

  Note that under the new pricing framework used in QuantLib,
  pricers do not provide analytics for all 'Greeks'. When
  \dQuote{CrankNicolson} is selected, then at least delta, gamma and
  vega are available. With the default pricing engine of
  \dQuote{BaroneAdesiWhaley}, no greeks are returned.
  
  The \dQuote{CrankNicolson} engine needs to be used when setting
  discrete dividends.
}
\details{
  The Finite Differences method is used to value the American Option.
  
  Please see any decent Finance textbook for background reading, and
  the \code{QuantLib} documentation for details on the \code{QuantLib}
  implementation. 
}
\references{\url{https://www.quantlib.org/} for details on \code{QuantLib}.}
\author{Dirk Eddelbuettel \email{edd@debian.org} for the \R interface;
  the QuantLib Group for \code{QuantLib}}
\note{The interface might change in future release as \code{QuantLib}
  stabilises its own API.}
\seealso{\code{\link{EuropeanOption}}}

\examples{
# simple call with unnamed parameters
AmericanOption("call", 100, 100, 0.02, 0.03, 0.5, 0.4)
# simple call with some explicit parameters
AmericanOption("put", strike=100, volatility=0.4, 100, 0.02, 0.03, 0.5)
# simple call with unnamed parameters, using Crank-Nicolons
AmericanOption("put", strike=100, volatility=0.4, 100, 0.02, 0.03, 0.5, engine="CrankNicolson")
}
\keyword{misc}