EuropeanOptionArrays {RQuantLib} | R Documentation

## European Option evaluation using Closed-Form solution

### Description

The `EuropeanOptionArrays` function allows any of the numerical input parameters to be a list, and a list of arrays is returned. Each of the returned arrays has as many dimension as there were lists among the input parameters, and each multi-dimensional array element corresponds to an evaluation under the given set of parameters.

### Usage

    EuropeanOptionArrays(type, underlying, strike, dividendYield, riskFreeRate, maturity, volatility)

### Arguments

`type` | A string with one of the values `call` or `put`
`underlying` | (Scalar or list) current price(s) of the underlying stock
`strike` | (Scalar or list) strike price(s) of the option
`dividendYield` | (Scalar or list) continuous dividend yield(s) (as a fraction) of the stock
`riskFreeRate` | (Scalar or list) risk-free rate(s)
`maturity` | (Scalar or list) time(s) to maturity (in fractional years)
`volatility` | (Scalar or list) volatilit(y|ies) of the underlying stock

### Details

The well-known closed-form solution derived by Black, Scholes and Merton is used for valuation.

Please see any decent Finance textbook for background reading, and the `QuantLib` documentation for details on the `QuantLib` implementation.

### Value

The `EuropeanOptionArrays` function allows each of the numerical input parameters to be a list (or vector, or sequence). A list of multi-dimensional arrays is returned. Each array point corresponds to an evaluation under the given set of parameters.
For these functions, the following components are returned:

`value` | (Scalar or array) value of option
`delta` | (Scalar or array) change in value for a change in the underlying
`gamma` | (Scalar or array) change in value for a change in delta
`vega` | (Scalar or array) change in value for a change in the underlying's volatility
`theta` | (Scalar or array) change in value for a change in delta
`rho` | (Scalar or array) change in value for a change in time to maturity
`dividendRho` | (Scalar or array) change in value for a change in delta
`parameters` | List with parameters with which object was created

### Note

The interface might change in future release as `QuantLib` stabilises its own API.

### Author(s)

Dirk Eddelbuettel edd@debian.org for the R interface; the QuantLib Group for `QuantLib`

### References

http://quantlib.org for details on `QuantLib`.

### See Also

`AmericanOption`,`BinaryOption`

### Examples

    # define two vectos for the underlying and the volatility
    und.seq <- seq(10,180,by=2)
    vol.seq <- seq(0.1,0.9,by=0.1)
    # evaluate them along with three scalar parameters
    EOarr <- EuropeanOptionArrays("call", underlying=und.seq,
                                  strike=100, dividendYield=0.01,
                                  riskFreeRate=0.03,
                                  maturity=1, volatility=vol.seq)
    # and look at four of the result arrays: value, delta, gamma, vega
    old.par <- par(no.readonly = TRUE)
    par(mfrow=c(2,2),oma=c(5,0,0,0),mar=c(2,2,2,1))
    plot(EOarr$parameter$underlying, EOarr$value[,1], type='n',
         main="option value", xlab="", ylab="")
    topocol <- topo.colors(length(vol.seq))
    for (i in 1:length(vol.seq))
      lines(EOarr$parameter$underlying, EOarr$value[,i], col=topocol[i])
    plot(EOarr$parameter$underlying, EOarr$delta[,1],type='n',
         main="option delta", xlab="", ylab="")
    for (i in 1:length(vol.seq))
      lines(EOarr$parameter$underlying, EOarr$delta[,i], col=topocol[i])
    plot(EOarr$parameter$underlying, EOarr$gamma[,1],type='n',
         main="option gamma", xlab="", ylab="")
    for (i in 1:length(vol.seq))
      lines(EOarr$parameter$underlying, EOarr$gamma[,i], col=topocol[i])
    plot(EOarr$parameter$underlying, EOarr$vega[,1],type='n',
         main="option vega", xlab="", ylab="")
    for (i in 1:length(vol.seq))
      lines(EOarr$parameter$underlying, EOarr$vega[,i], col=topocol[i])
    mtext(text=paste("Strike is 100, maturity 1 year, riskless rate 0.03",
            "\nUnderlying price from", und.seq[1],"to", und.seq[length(und.seq)],
            "\nVolatility  from",vol.seq[1], "to",vol.seq[length(vol.seq)]),
          side=1,font=1,outer=TRUE,line=3)
    par(old.par)

[Package RQuantLib version 0.2.7 Index]