| Financial Derivatives Toolbox™ | ![]() |
Price bonds with embedded options by Black-Karasinski interest-rate tree
[Price, PriceTree] = optembndybk(BKTree,
CouponRate,
Settle, Maturity, OptSpec, Strike,
Strike, ExerciseDates,
'Name1', Value1, 'Name2',
Value2, ...)
BKTree | Interest-rate tree structure created by bktree. |
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 embedded option is set to the ValuationDate of the BK tree; the bond's argument for Settle date is ignored. |
[Price, PriceTree] = optembndybk(BKTree, CouponRate, Settle, Maturity, OptSpec, Strike, Strike, ExerciseDates, 'Name1', Value1, 'Name2', Value2, ...) prices bonds with embedded options by a BK interest-rate tree.
Price is a number of instruments (NINST)-by-1 matrix of expected prices at time 0.
PriceTree is a 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.
Create a BKTree 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 TimeSpec:
BKTimeSpec = bktimespec(ValuationDate, EndDates, Compounding);
Specify a VolSpec:
VolDates = ['jan-1-2008';'jan-1-2009';'jan-1-2010']; VolCurve = 0.01; AlphaDates = 'jan-1-2010'; AlphaCurve = 0.1; BKVolSpec = bkvolspec(ValuationDate, VolDates, VolCurve, AlphaDates, AlphaCurve);
Build a BKTree:
BKTree = bktree(BKVolSpec, RateSpec, BKTimeSpec);
To compute the price of an American puttable bond that pays an annual coupon of 5.25% , 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 = 'put';
Strike = [100];
ExerciseDates = {'jan-1-2008' '01-Jan-2010'};
AmericanOpt = 1;
PricePutBondBK = optembndbybk(BKTree, CouponRate, BondSettlement, BondMaturity,...
OptSpec, Strike, ExerciseDates,'Period', 1, 'AmericanOpt', 1)
PricePutBondBK =
102.3820![]() | optembndbybdt | optembndbyhjm | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |