Main Content

basketstockspec

Specify basket stock structure using Longstaff-Schwartz model

Description

BasketStockSpec = basketstockspec(Sigma,AssetPrice,Quantity,Correlation) creates a basket stock structure.

example

BasketStockSpec = basketstockspec(___,Name,Value) specifies options using one or more name-value pair arguments in addition to the input arguments in the previous syntax.

example

Examples

collapse all

Find a basket option of three stocks. The stocks are currently trading at $56, $92 and $125 with annual volatilities of 20%, 12% and 15%, respectively. The basket option contains 25% of the first stock, 40% of the second stock, and 35% of the third. The first stock provides a continuous dividend of 1%, while the other two provide no dividends. The correlation between the first and second asset is 30%, between the second and third asset 11%, and between the first and third asset 16%. Use this data to create the BasketStockSpec structure:

AssetPrice = [56;92;125];
Sigma = [0.20;0.12;0.15];

% Create the Correlation matrix. Correlation matrices are symmetric and
% have ones along the main diagonal.
NumInst  = 3;
Corr = zeros(NumInst,1);
Corr(1,2) = .30;
Corr(2,3) = .11;
Corr(1,3) = .16;
Corr = triu(Corr,1) + tril(Corr',-1) + diag(ones(NumInst,1), 0);

% Define dividends
DivType = cell(NumInst,1);
DivType{1}='continuous';
DivAmounts = cell(NumInst,1);
DivAmounts{1} = 0.01;

Quantity = [0.25; 0.40; 0.35];

BasketStockSpec = basketstockspec(Sigma, AssetPrice, Quantity, Corr, ...
'DividendType', DivType, 'DividendAmounts', DivAmounts)
BasketStockSpec = struct with fields:
             FinObj: 'BasketStockSpec'
              Sigma: [3x1 double]
         AssetPrice: [3x1 double]
           Quantity: [3x1 double]
        Correlation: [3x3 double]
       DividendType: {3x1 cell}
    DividendAmounts: {3x1 cell}
    ExDividendDates: {3x1 cell}

Examine the BasketStockSpec structure.

BasketStockSpec.Correlation
ans = 3×3

    1.0000    0.3000    0.1600
    0.3000    1.0000    0.1100
    0.1600    0.1100    1.0000

Find a basket option of two stocks. The stocks are currently trading at $60 and $55 with volatilities of 30% per annum. The basket option contains 50% of each stock. The first stock provides a cash dividend of $0.25 on May 1, 2009 and September 1, 2009. The second stock provides a continuous dividend of 3%. The correlation between the assets is 40%. Use this data to create the structure BasketStockSpec:

AssetPrice = [60;55];
Sigma = [0.30;0.30];

% Create the Correlation matrix. Correlation matrices are symmetric and
% have ones along the main diagonal.
Correlation = [1 0.40;0.40 1];

% Define dividends
NumInst  = 2;
DivType = cell(NumInst,1);
DivType{1}='cash';
DivType{2}='continuous';

DivAmounts = cell(NumInst,1);
DivAmounts{1} = [0.25 0.25];
DivAmounts{2} = 0.03;

ExDates = cell(NumInst,1);
ExDates{1} = {'May-1-2009' 'Sept-1-2009'};

Quantity = [0.5; 0.50];

BasketStockSpec = basketstockspec(Sigma, AssetPrice, Quantity, Correlation, ...
'DividendType', DivType, 'DividendAmounts', DivAmounts, 'ExDividendDates',ExDates)
BasketStockSpec = struct with fields:
             FinObj: 'BasketStockSpec'
              Sigma: [2x1 double]
         AssetPrice: [2x1 double]
           Quantity: [2x1 double]
        Correlation: [2x2 double]
       DividendType: {2x1 cell}
    DividendAmounts: {2x1 cell}
    ExDividendDates: {2x1 cell}

Examine the BasketStockSpec structure.

BasketStockSpec.DividendType
ans = 2x1 cell
    {'cash'      }
    {'continuous'}

Input Arguments

collapse all

Annual price volatility of the underlying security, specified as an NINST-by-1 vector in decimals.

Data Types: double

Underlying asset price values at time 0, specified as a NINST-by-1 vector.

Data Types: double

Quantities of the instruments contained in the basket, specified as an NINST-by-1 vector.

Data Types: double

Correlation values, specified as an NINST-by-1 matrix.

Data Types: double

Name-Value Arguments

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

Example: BasketStockSpec = basketstockspec(Sigma,AssetPrice,Quantity,Correlation,'DividendType',DivType,'DividendAmounts',DivAmounts)

Dividend amounts for basket instruments, specified as the comma-separated pair consisting of 'DividendAmounts' and an NINST-by-1 cell array. Each element of the cell array is a 1-by-NDIV row vector of cash dividends or a scalar representing a continuous annualized dividend yield for the corresponding instrument.

Data Types: double

Stock dividend type, specified as the comma-separated pair consisting of 'DividendType' and an NINST-by-1 cell array of character vectors specifying each stock's dividend type. Dividend type must be either cash for actual dollar dividends or continuous for continuous dividend yield.

Data Types: char | cell

Ex-dividend dates for the basket instruments, specified as the comma-separated pair consisting of 'ExDividendDates' and an NINST-by-1 cell array specifying the ex-dividend dates for the basket instruments. Each row is a 1-by-NDIV matrix of ex-dividend dates for cash type. For rows that correspond to basket instruments with continuous dividend type, the cell is empty. If none of the basket instruments pay continuous dividends, do not specify ExDividendDates.

Data Types: cell

Output Arguments

collapse all

Structure encapsulating the properties of a basket stock structure, returned as a structure.

Version History

Introduced in R2009b