bnddurp - Bond duration given price

Syntax

[ModDuration, YearDuration, PerDuration] = bnddurp(Price, 
CouponRate, Settle, Maturity, Period, Basis, EndMonthRule, 
IssueDate, FirstCouponDate, LastCouponDate, StartDate, Face)

Arguments

Price

Clean price (excludes accrued interest).

CouponRate

Decimal number indicating the annual percentage rate used to determine the coupons payable on a bond.

Settle

Settlement date. A vector of serial date numbers or date strings. Settle must be earlier than or equal to Maturity.

Maturity

Maturity date. A vector of serial date numbers or date strings.

Period

(Optional) Coupons per year of the bond. A vector of integers. Allowed values are 0, 1, 2 (default), 3, 4, 6, and 12.

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)

EndMonthRule

(Optional) End-of-month rule. A vector. This rule applies only when Maturity is an end-of-month date for a month having 30 or fewer days. 0 = ignore rule, meaning that a bond's coupon payment date is always the same numerical day of the month. 1 = set rule on (default), meaning that a bond's coupon payment date is always the last actual day of the month.

IssueDate

(Optional) Date when a bond was issued.

FirstCouponDate

(Optional) Date when a bond makes its first coupon payment. When FirstCouponDate and LastCouponDate are both specified, FirstCouponDate takes precedence in determining the coupon payment structure.

LastCouponDate

(Optional) Last coupon date of a bond before the maturity date. 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 will be followed only by the bond's maturity cash flow date.

StartDate

(Future implementation; optional) Date when a bond actually starts (the date from which a bond's cash flows can be considered). To make an instrument forward-starting, specify this date as a future date. If StartDate is not explicitly specified, the effective start date is the settlement date.

Face

(Optional) Face or par value. Default = 100.

All specified arguments must be number of bonds (NUMBONDS) by 1 or 1-by-NUMBONDS conforming vectors or scalar arguments. Use an empty matrix ([]) as a placeholder for an optional argument. Fill unspecified entries in input vectors with NaN. Dates can be serial date numbers or date strings.

Description

[ModDuration, YearDuration, PerDuration] = bnddurp(Price, CouponRate, Settle, Maturity, Period, Basis, EndMonthRule, IssueDate, FirstCouponDate, LastCouponDate, StartDate, Face) computes the duration of NUMBONDS fixed income securities given a clean price for each bond. This function determines the Macaulay and modified duration for a bond whether or not the first or last coupon periods in the coupon structure are short or long (this is, whether or not the coupon structure is synchronized to maturity). This function also determines the Macaulay and modified duration for a zero coupon bond.

ModDuration is the modified duration in years, reported on a semiannual bond basis (in accordance with SIA convention); YearDuration is the Macaulay duration in years; PerDuration is the periodic Macaulay duration reported on a semiannual bond basis (in accordance with SIA convention). Outputs are NUMBONDS-by-1 vectors.

Examples

Find the duration of three bonds given their prices.

Price = [106; 100; 98]; 
CouponRate = 0.055; 
Settle = '02-Aug-1999'; 
Maturity = '15-Jun-2004'; 
Period = 2; 
Basis = 0; 

[ModDuration, YearDuration, PerDuration] = bnddurp(Price,... 
CouponRate, Settle, Maturity, Period, Basis)

ModDuration =

    4.2400
    4.1925
    4.1759

YearDuration =

    4.3275
    4.3077
    4.3007

PerDuration =

    8.6549
    8.6154
    8.6014

See Also

bndconvp, bndconvy, bnddury

  


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