| Contents | Index |
[Price, PriceNoAI, CFlowAmounts, CFlowDates] =
bondbyzero(RateSpec,
CouponRate, Settle, Maturity)
[Price, PriceNoAI, CFlowAmounts, CFlowDates] =
bondbyzero(RateSpec,
CouponRate, Settle, Maturity,
Period, Basis,
EndMonthRule, IssueDate,
FirstCouponDate, LastCouponDate,
StartDate, Face)
[Price, PriceNoAI, CFlowAmounts, CFlowDates] =
bondbyzero(RateSpec,
CouponRate, Settle,
Maturity, Name,
Value)
[Price, PriceNoAI, CFlowAmounts, CFlowDates] = bondbyzero(RateSpec, CouponRate, Settle, Maturity) returns a NINST-by-NUMCURVES matrix of clean bond prices. Each column arises from one of the zero curves.
[Price, PriceNoAI, CFlowAmounts, CFlowDates] = bondbyzero(RateSpec, CouponRate, Settle, Maturity, Period, Basis, EndMonthRule, IssueDate,FirstCouponDate, LastCouponDate, StartDate, Face) returns a NINST-by-NUMCURVES matrix of clean bond prices. Each column arises from one of the zero curves.
[Price, PriceNoAI, CFlowAmounts, CFlowDates] = bondbyzero(RateSpec, CouponRate, Settle, Maturity, Name, Value) returns a NINST-by-NUMCURVES matrix of clean bond prices (each column arises from one of the zero curves) with additional options specified by one or more Name, Value pair arguments.
bondbyzero computes prices of vanilla bonds, stepped coupon bonds, and amortizing bonds with no market purchase option and no call provisions.
RateSpec |
Structure containing the properties of an interest-rate structure. See intenvset for information on creating RateSpec. |
CouponRate |
Decimal annual rate. CouponRate is a NINST-by-1 vector or NINST-by-1 cell array of decimal annual rates, or decimal annual rate schedules. For the latter case of a variable coupon schedule, each element of the cell array is a NumDates-by-2 cell array, where the first column is dates and the second column is its associated rate. The date indicates the last day that the coupon rate is valid. |
Settle |
Settlement date. NINST-by-1 vector of serial date numbers or date strings representing the settlement date for each swap. Settle must be earlier than Maturity. |
Maturity |
Maturity date. NINST-by-1 vector of dates representing the maturity date for each swap. |
Enter the following optional inputs using an ordered syntax or as name-value pair arguments. You cannot mix ordered syntax with name-value pair arguments.
Period |
Coupons per year of the bond. A vector of integers. Values are 1, 2, 3, 4, 6, and 12. Default: 2 |
Basis |
Day-count basis of the instrument. A vector of integers.
For more information, see basis. Default: 0 (actual/actual) |
EndMonthRule |
End-of-month rule. A NINST-by-1 vector. This rule applies only when Maturity is an end-of-month date for a month having 30 or fewer days.
Default: 1 |
IssueDate |
Date when a bond was issued. |
FirstCouponDateDate |
Date when a bond makes its first coupon payment; used when bond has an irregular first coupon period. When FirstCouponDate and LastCouponDate are both specified, FirstCouponDate takes precedence in determining the coupon payment structure. If you do not specify a FirstCouponDate, the cash flow payment dates are determined from other inputs. |
LastCouponDateDate |
Last coupon date of a bond before the maturity date; used when bond has an irregular last coupon period. In the absence of a specified FirstCouponDate, a specified LastCouponDate determines the coupon structure of the bond. The coupon structure of a bond is truncated at the LastCouponDate, regardless of where it falls, and is followed only by the bond's maturity cash flow date. If you do not specify a LastCouponDate, the cash flow payment dates are determined from other inputs. |
StartDate |
Date when a bond actually starts (the date from which a bond cash flow is considered). To make an instrument forward-starting, specify this date as a future date. If you do not specify StartDate, the effective start date is the Settle date. |
Face |
Face or par value. Face is a NINST-by-1 vector or NINST-by-1 cell array of face values, or face value schedules. For the latter case, each element of the cell array is a NumDates-by-2 cell array, where the first column is dates and the second column is its associated face value. The date indicates the last day that the face value is valid. Default: 100 |
Options |
Derivatives pricing options structure created with derivset. |
Specify optional comma-separated pairs of Name,Value arguments, where Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.
A vanilla coupon bond is a security representing an obligation to repay a borrowed amount at a designated time and to make periodic interest payments until that time. The issuer of a bond makes the periodic interest payments until the bond matures. At maturity, the issuer pays to the holder of the bond the principal amount owed (face value) and the last interest payment.
A step-up and step-down bond is a debt security with a predetermined coupon structure over time. With these instruments, coupons increase (step up) or decrease (step down) at specific times during the life of the bond.
An amortized bond is treated as an asset, with the discount amount being amortized to interest expense over the life of the bond.
Price a 4% bond using a zero curve.
Load deriv.mat, which provides ZeroRateSpec, the interest-rate term structure, needed to price the bond.
load deriv.mat; CouponRate = 0.04; Settle = '01-Jan-2000'; Maturity = '01-Jan-2004'; Price = bondbyzero(ZeroRateSpec, CouponRate, Settle, Maturity)
Price = 97.5334
Price single stepped coupon bonds using market data.
Define data for the interest-rate term structure.
Rates = [0.035; 0.042147; 0.047345; 0.052707]; ValuationDate = 'Jan-1-2010'; StartDates = ValuationDate; EndDates = {'Jan-1-2011'; 'Jan-1-2012'; 'Jan-1-2013'; 'Jan-1-2014'}; Compounding = 1;
Create the RateSpec.
RS = intenvset('ValuationDate', ValuationDate, 'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RS =
FinObj: 'RateSpec'
Compounding: 1
Disc: [4x1 double]
Rates: [4x1 double]
EndTimes: [4x1 double]
StartTimes: [4x1 double]
EndDates: [4x1 double]
StartDates: 734139
ValuationDate: 734139
Basis: 0
EndMonthRule: 1Create the stepped bond instrument.
Settle = '01-Jan-2010'; Maturity = {'01-Jan-2011';'01-Jan-2012';'01-Jan-2013';'01-Jan-2014'}; CouponRate = {{'01-Jan-2012' .0425;'01-Jan-2014' .0750}}; Period = 1;
Compute the price of the stepped coupon bonds.
PZero= bondbyzero(RS, CouponRate, Settle, Maturity ,Period)
PZero = 100.7246 100.0945 101.5900 102.0820
Price a bond with an amortizing schedule using the Face input argument to define the schedule.
Define data for the interest-rate term structure.
Rates = 0.065; ValuationDate = '1-Jan-2011'; StartDates = ValuationDate; EndDates= '1-Jan-2017'; Compounding = 1;
Create the RateSpec.
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec =
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.6853
Rates: 0.0650
EndTimes: 6
StartTimes: 0
EndDates: 736696
StartDates: 734504
ValuationDate: 734504
Basis: 0
EndMonthRule: 1Create and price the amortizing bond instrument. The bond has a coupon rate of 7%, a period of one year, and matures on 1-Jan-2017.
CouponRate = 0.07; Settle ='1-Jan-2011'; Maturity = '1-Jan-2017'; Period = 1; Face = {{'1-Jan-2015' 100;'1-Jan-2016' 90;'1-Jan-2017' 80}}; Price = bondbyzero(RateSpec, CouponRate, Settle, Maturity, 'Period',... Period, 'Face', Face)
Price = 102.3155
Compare the results with price of a vanilla bond.
PriceVanilla = bondbyzero(RateSpec, CouponRate, Settle, Maturity,Period)
PriceVanilla = 102.4205
cfamounts | cfbyzero | fixedbyzero | floatbyzero | swapbyzero
View demos and recorded presentations led by industry experts.
Now On Demand
Network with industry peers and learn the latest applications of the leading software product for computational finance.
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |