Price cap instrument from Black-Derman-Toy interest-rate tree
[Price, PriceTree] = capbybdt(BDTTree,
Strike, Settle,Maturity, Reset, Basis, Principal,
Interest-rate tree structure created by bdttree.
Number of instruments (NINST)-by-1 vector of rates at which the cap is exercised.
Settlement dates. NINST-by-1 vector of dates representing the settlement dates of the cap.
NINST-by-1 vector of dates representing the maturity dates of the cap.
(Optional) NINST-by-1 vector representing the frequency of payments per year. Default = 1.
(Optional) Day-count basis of the instrument. A vector of integers.
For more information, see basis.
(Optional) The notional principal amount. Default = 100.
(Optional) Derivatives pricing options structure created with derivset.
Price is the expected price of the cap at time 0.
PriceTree is the tree structure with values of the cap at each node.
The Settle date for every cap is set to the ValuationDate of the BDT tree. The cap argument Settle is ignored.
Example 1. Price a 3% cap instrument using a BDT interest-rate tree.
Load the file deriv.mat, which provides BDTTree. The BDTTree structure contains the time and interest-rate information needed to price the cap instrument.
Set the required values. Other arguments will use defaults.
Strike = 0.03; Settle = '01-Jan-2000'; Maturity = '01-Jan-2004';
Use capbybdt to compute the price of the cap instrument.
Price = capbybdt(BDTTree, Strike, Settle, Maturity)
Price = 28.4001
Example 2. This example shows the pricing of a 10% cap 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 cap arguments. Remaining arguments will use defaults.
CapStrike = 0.10; Settlement = ValuationDate; Maturity = '01-01-2002'; CapReset = 1;
Use capbybdt to find the price of the cap instrument.
Price= capbybdt(BDTTree, CapStrike, Settlement, Maturity,... CapReset)
Price = 1.7169