Documentation Center

  • Trial Software
  • Product Updates

basketsensbyls

Determine price and sensitivities for basket options using Longstaff-Schwartz model

Syntax

PriceSens = basketsensbyls(RateSpec, BasketStockSpec, OptSpec, Strike,
Settle, ExerciseDates)
PriceSens = basketsensbyls(RateSpec, BasketStockSpec, OptSpec, Strike,
Settle, ExerciseDates, 'ParameterName', ParameterValue ...)

Description

PriceSens = basketsensbyls(RateSpec, BasketStockSpec, OptSpec, Strike,
Settle, ExerciseDates)
prices basket options using the Longstaff-Schwartz model.

PriceSens = basketsensbyls(RateSpec, BasketStockSpec, OptSpec, Strike,
Settle, ExerciseDates, 'ParameterName', ParameterValue ...)
accepts optional inputs as one or more comma-separated parameter/value pairs. 'ParameterName' is the name of the parameter inside single quotes. 'ParameterValue is the value corresponding to 'ParameterName'. Specify parameter-value pairs in any order. Names are case-insensitive and partial string matches are allowable, if no ambiguities exist.

Input Arguments

RateSpec

Annualized, continuously compounded rate term structure. For more information on the interest rate specification, see intenvset.

BasketStockSpec

BasketStock specification. For information on the basket of stocks specification, see basketstockspec.

OptSpec

String or 2-by-1 cell array of the strings 'call' or 'put'.

Strike

The option strike price:

  • For a European or Bermuda option, Strike is a scalar (European) or 1-by-NSTRIKES (Bermuda) vector of strike price.

  • For an American option, Strike is a scalar vector of strike price.

Settle

Scalar of settlement or trade date.

ExerciseDates

The exercise date for the option:

  • For a European or Bermuda option, ExerciseDates is a 1-by-1 (European) or 1-by-NSTRIKES (Bermuda) vector of exercise dates. For a European option, there is only one ExerciseDate on the option expiry date.

  • For an American option, ExerciseDates is a 1-by-2 vector of exercise date boundaries. The option exercises on any date between or including the pair of dates on that row. If there is only one non-NaN date, or if ExerciseDates is 1-by-1, the option exercises between the Settle date and the single listed ExerciseDate.

Parameter–Value Pairs

AmericanOpt

Parameter values are a scalar flag.

  • 0 — European/Bermuda

  • 1 — American

Default: 0

NumPeriods

Parameter value is a scalar number of simulation periods. NumPeriods is considered only when pricing European basket options. For American and Bermuda basket options, NumPeriod equals the number of exercise days during the life of the option.

Default: 100

NumTrials

Parameter value is a scalar number of independent sample paths (simulation trials).

Default: 1000

OutSpec

Parameter value is an 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', and 'All'. For example, OutSpec = {'Price', 'Lambda', 'Rho'} specifies that the output is Price, Lambda, and Rho, in that order.

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: OutSpec = {'Price'}

UndIdx

Scalar of the indice of the underlying instrument to compute the sensitivity.

Default: UndIdx = []

Output Arguments

PriceSens

Expected prices or sensitivities values.

Examples

expand all

Calculate Price and Sensitivities for Basket Options Using the Longstaff-Schwartz Model

Find a European put basket option of two stocks. The basket contains 50% of each stock. The stocks are currently trading at $90 and $75, with annual volatilities of 15%. Assume that the correlation between the assets is zero. On May 1, 2009, an investor wants to buy a one-year put option with a strike price of $80. The current annualized, continuously compounded interest is 5%. Use this data to compute price and delta of the put basket option with the Longstaff-Schwartz approximation model.

Settle = 'May-1-2009';
Maturity  = 'May-1-2010';

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

% Define the Correlation matrix. Correlation matrices are symmetric,
% and have ones along the main diagonal.
NumInst  = 2;
InstIdx = ones(NumInst,1);
Corr = diag(ones(NumInst,1), 0);

% Define BasketStockSpec
AssetPrice =  [90; 75];
Volatility = 0.15;
Quantity = [0.50; 0.50];
BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, Corr);

% Compute the price of the put basket option. Calculate also the delta
% of the first stock.
OptSpec = {'put'};
Strike = 80;
OutSpec = {'Price','Delta'};
UndIdx = 1; % First element in the basket

[PriceSens, Delta] = basketsensbyls(RateSpec, BasketStockSpec, OptSpec,...
Strike, Settle, Maturity,'OutSpec', OutSpec,'UndIdx', UndIdx)
PriceSens =

    0.9822


Delta =

   -0.0995

Compute the Price and Delta of the basket with a correlation of -20%:

NewCorr = [1 -0.20; -0.20 1];

% Define the new BasketStockSpec.
BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, NewCorr);

% Compute the price and delta of the put basket option.
[PriceSens, Delta] = basketsensbyls(RateSpec, BasketStockSpec, OptSpec,...
Strike, Settle, Maturity,'OutSpec', OutSpec,'UndIdx', UndIdx)
PriceSens =

    0.7814


Delta =

   -0.0961

More About

References

Longstaff, F.A., and E.S. Schwartz, "Valuing American Options by Simulation: A Simple Least-Squares Approach", The Review of Financial Studies,Vol. 14, No. 1, Spring 2001, pp. 113–147.

See Also

|

Was this topic helpful?