Documentation Center

  • 評価版
  • 製品アップデート

optstocksensbyrgw

Determine American call option prices and sensitivities using Roll-Geske-Whaley option pricing model

Syntax

PriceSens = optstocksensbyrgw(RateSpec, StockSpec, Settle,
Maturity, OptSpec, Strike, 'Name1', Value1...)

Arguments

RateSpec

The annualized continuously compounded rate term structure. For information on the interest rate specification, see intenvset.

StockSpec

Stock specification. See stockspec.

Settle

NINST-by-1 vector of settlement or trade dates.

Maturity

NINST-by-1 vector of maturity dates.

OptSpec

NINST-by-1 cell array of strings 'call' or 'put'.

Strike

NINST-by-1 vector of strike price values.

OutSpec

(Optional) All optional inputs are specified as matching parameter name/value pairs. The parameter name is specified as a character string, followed by the corresponding parameter value. Parameter name/value pairs may be specified in any order; names are case-insensitive and partial string matches are allowed provided no ambiguities exist. Valid parameter names are:

  • NOUT-by-1 or 1-by-NOUT cell array of strings indicating the nature and order of the outputs for the function. Possible values are: 'Price', 'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', or 'All'.

    For example, OutSpec = {'Price'; 'Lambda'; 'Rho'} specifies that the output should be Price, Lambda, and Rho, in that order.

    To invoke from a function: [Price, Lambda, Rho] = optstocksensbyrgw(..., 'OutSpec', {'Price', 'Lambda', 'Rho'})

    OutSpec = {'All'} specifies that the output should be Delta, Gamma, Vega, Lambda, Rho, Theta, and Price, in that order. This is the same as specifying OutSpec as OutSpec = {'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', 'Price'};.

  • Default is OutSpec = {'Price'}.

Description

PriceSens = optstocksensbyrgw(RateSpec, StockSpec, Settle,
Maturity, OptSpec, Strike, 'Name1', Value1...)
computes American call option prices and sensitivities using the Roll-Geske-Whaley option pricing model.

PriceSens is a NINST-by-1 vector of expected prices or sensitivities values.

    Note:   optstocksensbyrgw computes prices of American calls with a single cash dividend using the Roll-Geske-Whaley option pricing model. All sensitivities are evaluated by computing a discrete approximation of the partial derivative. This means that the option is revalued with a fractional change for each relevant parameter, and the change in the option value divided by the increment, is the approximated sensitivity value.

Examples

expand all

Compute American Call Option Prices and Sensitivities Using the Roll-Geske-Whaley Option Pricing Model

This example shows how to compute American call option prices and sensitivities using the Roll-Geske-Whaley option pricing model. Consider an American stock option with an exercise price of $82 on January 1, 2008 that expires on May 1, 2008. Assume the underlying stock pays dividends of $4 on April 1, 2008. The stock is trading at $80 and has a volatility of 30% per annum. The risk-free rate is 6% per annum. Using this data, calculate the price and the value of delta and gamma of the American call using the Roll-Geske-Whaley option pricing model.

AssetPrice = 80;
Settle = 'Jan-01-2008';
Maturity = 'May-01-2008';
Strike = 82;
Rate = 0.06;
Sigma  = 0.3;
DivAmount = 4;
DivDate = 'Apr-01-2008';

% define the RateSpec and StockSpec
StockSpec = stockspec(Sigma, AssetPrice, {'cash'}, DivAmount, DivDate);

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,...
'EndDates', Maturity, 'Rates', Rate, 'Compounding', -1, 'Basis', 1);

% define the OutSpec
OutSpec = {'Price', 'Delta', 'Gamma'};

[Price, Delta, Gamma]  = optstocksensbyrgw(RateSpec, StockSpec, Settle,...
Maturity, Strike,'OutSpec', OutSpec)
Price =

    4.3860


Delta =

    0.5022


Gamma =

    0.0336

See Also

| | |

Was this topic helpful?