This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

stepcpnyield

Yield to maturity of bond with stepped coupons

Syntax

Yield = stepcpnyield(Price,Settle,Maturity,ConvDates,CouponRate,Period,Basis,EndMonthRule,Face)

Arguments

Price

Vector containing price of the bonds.

Settle

Settlement date. A vector of serial date numbers. Settle must be earlier than Maturity.

Maturity

Maturity date. A vector of serial date numbers.

ConvDates

Matrix of serial date numbers representing conversion dates after Settle. Size = number of instruments by maximum number of conversions. Fill unspecified entries with NaN.

CouponRates

Matrix indicating the coupon rates for each bond in decimal form. Size = number of instruments by maximum number of conversions + 1. First column of this matrix contains rates applicable between Settle and the first conversion date (date in the first column of ConvDates). Fill unspecified entries with NaN.

ConvDates has the same number of rows as CouponRate to reflect the same number of bonds. However, ConvDates has one less column than CouponRate. This situation is illustrated by

Settle---------ConvDate1-----------ConvDate2------------Maturity

         Rate1               Rate2                 Rate3

Period

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

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 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (European)

  • 7 = actual/365 (Japanese)

  • 8 = actual/actual (ICMA)

  • 9 = actual/360 (ICMA)

  • 10 = actual/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = actual/365 (ISDA)

  • 13 = BUS/252

For more information, see basis.

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.

Face

(Optional) Face value of each bond in the portfolio. Default = 100.

Note

All arguments must be number of bonds (NUMBONDS)-by-1 vectors, except for ConvDates and CouponRate.

Description

Yield = stepcpnyield(Price,Settle,Maturity,ConvDates,CouponRate,Period,Basis,EndMonthRule,Face) computes the yield to maturity of bonds with stepped coupons given the price. The function supports any number of conversion dates.

Yield is a NUMBONDS-by-1 vector of yields to maturity in decimal form.

Note

For bonds with fixed coupons, use bndyield. You receive the error incorrect number of inputs if you use a fixed-coupon bond with stepcpnyield.

Examples

Find the yield to maturity of three stepped-coupon bonds of known price, given three conversion scenarios:

  • Bond A has two conversions, the first one falling on the settle date and immediately expiring.

  • Bond B has three conversions, with conversion dates exactly on the coupon dates.

  • Bond C has three conversions, with one or more conversion dates not on coupon dates. This case illustrates that only cash flows for full periods after conversion dates are affected, as illustrated below.

The following table illustrates the interest rate characteristics of this bond portfolio.

Bond A DatesBond A RatesBond B DatesBond B RatesBond C DatesBond C Rates

Settle (02-Aug-92)

7.5%

Settle (02-Aug-92)

7.5%

Settle (02-Aug-92)

7.5%

First Conversion (02-Aug-92)

8.875%

First Conversion (15-Jun-97)

8.875%

First Conversion (14-Jun-97)

8.875%

Second Conversion (15-Jun-03)

9.25%

Second Conversion (15-Jun-01)

9.25%

Second Conversion (14-Jun-01)

9.25%

Maturity (15-Jun-10)

NaN

Third Conversion (15-Jun-05)

10.0%

Third Conversion (14-Jun-05)

10.0%

  

Maturity (15-Jun-10)

NaN

Maturity (15-Jun-10)

NaN

format long
Price = [117.3824; 113.4339; 113.4339];
Settle = datenum('02-Aug-1992');

ConvDates = [datenum('02-Aug-1992'), datenum('15-Jun-2003'), nan;
datenum('15-Jun-1997'), datenum('15-Jun-2001'), datenum('15-Jun-2005'); 
datenum('14-Jun-1997'), datenum('14-Jun-2001'), datenum('14-Jun-2005')];
        
Maturity = datenum('15-Jun-2010');

CouponRates = [0.075 0.08875 0.0925 nan;
               0.075 0.08875 0.0925 0.1;
               0.075 0.08875 0.0925 0.1];
Basis = 1;
Period = 2;
EndMonthRule = 1;
Face = 100;

Yield = stepcpnyield(Price, Settle, Maturity, ConvDates, ... 
CouponRates, Period, Basis, EndMonthRule, Face)
Yield =

0.07221440204915
0.07221426780036
0.07221426780036

References

This function adheres to SIA Fixed Income Securities Formulas for Price, Yield, and Accrued Interest. 3rd Edition. Vol. 1, pp. 120–123, on zero-coupon instruments pricing.

Introduced before R2006a