| Financial Derivatives Toolbox™ | ![]() |
Price bonds with embedded options by Black-Derman-Toy interest rate tree
[Price, PriceTree] = optembndbybdt(BDTTree,
CouponRate,
Settle, Maturity, OptSpec, Strike,
ExerciseDates,
'Name1', Value1, 'Name2', Value2,
...)
BDTTree | Interest-rate tree structure created by bdttree. |
CouponRate | NINST-by-1 matrix for the decimal annual rate. |
Settle | NINST-by-1 matrix for the settlement date. A vector of serial date numbers or date strings. Settle must be earlier than Maturity. |
Maturity | NINST-by-1 matrix for the maturity date. A vector of serial date numbers or date strings. |
OptSpec | NINST-by-1 cell array of strings 'call' or 'put'. |
Strike | NINST-by-NSTRIKES of strike price values. |
ExerciseDates | NINST-by-NSTRIKES or NINST-by-2 matrix for exercise callable/puttable dates. |
(Optional) The name/value pairs are a variable length list of parameters. 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 as follows:
|
Note The Settle date for every bond with an embedded option is set to the ValuationDate of the BDT tree; the bond's argument for Settle date is ignored. |
[Price, PriceTree] = optembndbybdt(BDTTree, CouponRate,Settle, Maturity, OptSpec, Strike, ExerciseDates,'Name1', Value1, 'Name2', Value2, ...) prices bonds with embedded options using a BDT interest-rate tree.
Price is a number of instruments (NINST)-by-1 matrix of expected prices at time 0.
PriceTree is a MATLAB® structure of trees containing vectors of instrument prices and accrued interest, and a vector of observation times for each node. Within PriceTree
PriceTree.PTree contains the clean prices.
PriceTree.AITree contains the accrued interest.
PriceTree.tObs contains the observation times.
To price a callable bond using the BDT model, create a BDTTree with the following data:
ZeroRates = [ 0.035;0.04;0.045]; Compounding = 1; StartDates = ['jan-1-2007';'jan-1-2008';'jan-1-2009']; EndDates = ['jan-1-2008';'jan-1-2009';'jan-1-2010']; ValuationDate = 'jan-1-2007';
Create a RateSpec:
RateSpec = intenvset('Rates', ZeroRates, 'StartDates', ValuationDate, 'EndDates', ...
EndDates, 'Compounding', Compounding, 'ValuationDate', ValuationDate);Specify a VolSpec:
Volatility = 0.10 * ones (3,1); VolSpec = bdtvolspec(ValuationDate, EndDates, Volatility);
Specify a TimeSpec:
TimeSpec = bdttimespec(ValuationDate, EndDates, Compounding);
Build the BDTTree:
BDTTree = bdttree(VolSpec, RateSpec, TimeSpec);
To compute the price of an American callable bond that pays a 5.25% annual coupon, matures in Jan-1-2010, and is callable on Jan-1-2008 and 01-Jan-2010:
BondSettlement = 'jan-1-2007';
BondMaturity = 'jan-1-2010';
CouponRate = 0.0525;
Period = 1;
OptSpec = 'call';
Strike = [100];
ExerciseDates = {'jan-1-2008' '01-Jan-2010'};
AmericanOpt = 1;
PriceCallBond = optembndbybdt(BDTTree, CouponRate, BondSettlement, BondMaturity,...
OptSpec, Strike, ExerciseDates, 'Period', 1,'AmericanOp', 1)
PriceCallBond =
101.4750bdtprice, bdttree, instoptembnd
![]() | optbndbyhw | optembndbybk | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |