floorbybdt - Price floor instrument from BDT interest-rate tree

Syntax

[Price, PriceTree] = floorbybdt(BDTTree, Strike, Settle, Maturity, 
Reset, Basis, Principal, Options)

Arguments

BDTTree

Interest-rate tree structure created by bdttree.

Strike

Number of instruments (NINST)-by-1 vector of rates at which the floor is exercised.

Settle

Settlement date. NINST-by-1 vector of dates representing the settlement dates of the floor. The Settle date for every floor is set to the ValuationDate of the BDT tree. The floor argument Settle is ignored.

Maturity

NINST-by-1 vector of dates representing the maturity dates of the floor.

Reset

(Optional) NINST-by-1 vector representing the frequency of payments per year. Default = 1.

Basis

(Optional) Day-count basis of the instrument. A vector of integers.

  • 0 = actual/actual (default)

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (European)

  • 7 = actual/365 (Japanese)

  • 8 = actual/actual (ISMA)

  • 9 = actual/360 (ISMA)

  • 10 = actual/365 (ISMA)

  • 11 = 30/360E (ISMA)

  • 12 = actual/365 (ISDA)

Principal

(Optional) The notional principal amount. Default = 100.

Options

(Optional) Derivatives pricing options structure created with derivset.

Description

[Price, PriceTree] = floorbybdt(BDTTree, Strike, Settlement, Maturity, Reset, Basis, Principal, Options) computes the price of a floor instrument from a BDT interest-rate tree.

Price is an NINST-by-1 vector of the expected prices of the floor at time 0.

PriceTree is the tree structure with values of the floor at each node.

Examples

Example 1. Price a 10% floor instrument using a BDT interest-rate tree.

Load the file deriv.mat, which provides BDTTree. BDTTree contains the time and interest-rate information needed to price the floor instrument.

load deriv.mat; 

Set the required values. Other arguments will use defaults.

Strike = 0.10;
Settle = '01-Jan-2000';
Maturity = '01-Jan-2004';

Use floorbybdt to compute the price of the floor instrument.

Price = floorbybdt(BDTTree, Strike, Settle, Maturity)

Price =

   0.1770

Example 2. Here is a second example, showing the pricing of a 10% floor instrument using a newly created BDT tree.

First set the required arguments for the three needed specifications.

Compounding = 1; 
ValuationDate = '01-01-2000'; 
StartDate = ValuationDate; 
EndDates = ['01-01-2001'; '01-01-2002'; '01-01-2003'; 
'01-01-2004'; '01-01-2005']; 
Rates = [.1; .11; .12; .125; .13]; 
Volatility = [.2; .19; .18; .17; .16];

Next create the specifications.

RateSpec = intenvset('Compounding', Compounding,... 
'ValuationDate', ValuationDate,... 
'StartDates', StartDate,... 
'EndDates', EndDates,... 
'Rates', Rates); 
BDTTimeSpec = bdttimespec(ValuationDate, EndDates, Compounding); 
BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Volatility); 

Now create the BDT tree from the specifications.

BDTTree = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);

Set the floor arguments. Remaining arguments will use defaults.

FloorStrike = 0.10; 
Settlement = ValuationDate; 
Maturity = '01-01-2002'; 
FloorReset = 1;

Finally, use floorbybdt to find the price of the floor instrument.

Price= floorbybdt(BDTTree, FloorStrike, Settlement, Maturity,... 
FloorReset) 

Price =

    0.0431

See Also

bdttree, capbybdt, cfbybdt, swapbybdt

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS