stepcpnprice
Price bond with stepped coupons
Syntax
Description
[
computes the price of bonds with stepped coupons given the yield to maturity. The function
supports any number of conversion dates.Price,AccruedInterest] = stepcpnprice(Yield,Settle,Maturity,ConvDates,CouponRates)
[
adds additional optional arguments.Price,AccruedInterest] = stepcpnprice(___,Period,Basis,EndMonthRule,Face)
Examples
Compute the price and accrued interest due on a portfolio of stepped-coupon bonds having a yield of 7.221%, 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.

Define the specifications for the bonds.
Yield = 0.07221; 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;
Use stepcpnprice to compute the bond prices with stepped coupons.
[Price, AccruedInterest] = stepcpnprice(Yield, Settle, Maturity, ConvDates, CouponRates, Period, Basis, EndMonthRule, Face)
Price = 3×1
117.3874
113.4387
114.1759
AccruedInterest = 3×1
1.1587
0.9792
0.9792
Input Arguments
Yield to maturity, specified as a scalar or
NUMBONDS-by-1 vector of numeric values.
Data Types: double
Settlement date, specified either as a scalar or
NUMBONDS-by-1 vector using serial date numbers
or date character vectors.
Settle must be earlier than Maturity.
Data Types: double | char
Maturity date, specified as a scalar or an
NUMBONDS-by-1 vector using serial date numbers
or date character vectors that represent the maturity date for each bond.
Data Types: double | char
Conversion dates, specified as a
NSTP-by-max(NCONV) matrix using serial date
numbers or date character vectors that contain conversion dates after
Settle. The size of the matrix is equal to the number of
instruments by the maximum number of conversions. Fill unspecified entries with
NaN.
Data Types: double | char
Bond coupon rate, specified as an
NSTP-by-max(NCONV+1) matrix containing coupon
rates for each bond in the portfolio in decimal form. The matrix size is equal to the
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
CouponRates to reflect the same number of bonds. However,
ConvDates has one less column than
CouponRates. This situation is illustrated by
Settle---------ConvDate1-----------ConvDate2------------Maturity
Rate1 Rate2 Rate3Data Types: double
(Optional) Coupons per year, specified as an
NUMBONDS-by-1 vector. Values for
Period are 1, 2,
3, 4, 6, and
12.
Data Types: double
(Optional) Day-count basis of each instrument, specified as an
NUMBONDS-by-1 vector.
0 = actual/actual
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 (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.
Data Types: double
(Optional) End-of-month rule flag for generating dates when
Maturity is an end-of-month date for a month having 30 or fewer
days, specified for each bond as a nonnegative integer [0,
1] using a NUMBONDS-by-1 vector.
0= Ignore rule, meaning that a payment date is always the same numerical day of the month.1= Set rule on, meaning that a payment date is always the last actual day of the month.
Data Types: logical
(Optional) Face value, specified for each bond as an
NUMBONDS-by-1 vector of nonnegative face
values.
Data Types: double
Output Arguments
Clean price, returned as a NUMBONDS-by-1 vector.
Note
For bonds with fixed coupons, use bndprice. If you use a fixed-coupon bond with
stepcpnprice, you receive the error: incorrect number
of inputs.
accrued interest payable at settlement dates, returned as a
NUMBONDS-by-1 vector.
More About
A stepped coupon is a type of bond or fixed-income security that features a coupon rate that increases (or "steps up") at predetermined intervals over the life of the bond.
The stepped coupon structure is designed to provide investors with higher interest payments as time progresses, making it attractive in environments where interest rates are expected to rise.
Version History
Introduced before R2006a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)