Margin measures for floating-rate bond
[
calculates margin measures for a floating-rate bond. Margin
,AdjPrice
] = floatmargin(Price
,Spread
Settle
,Maturity
)
Use floatmargin
to calculate the following types of margin
measures for a floating-rate bond:
Spread for life
Adjusted simple margin
Adjusted total margin
To calculate the discount margin or zero discount margin, see
floatdiscmargin
.
[
adds optional name-value pair arguments. Margin
,AdjPrice
] = floatmargin(___,Name,Value
)
Use floatmargin
to compute margin measures for spreadforlife
, adjustedsimple
, and adjustedtotal
for a floating-rate note.
Define data for the floating-rate note.
Price = 99.99; Spread = 50; Settle = '20-Jan-2011'; Maturity = '15-Jan-2012'; LatestFloatingRate = 0.05; StubRate = 0.049; SpotRate = 0.05; Reset = 4; Basis = 2;
Calculate spreadforlife
.
Margin = floatmargin(Price, Spread, Settle, Maturity, 'Reset', ... Reset, 'Basis', Basis)
Margin = 51.0051
Calculate adjustedsimple
margin.
[Margin, AdjPrice] = floatmargin(Price, Spread, Settle, Maturity, ... 'SpreadType', 'adjustedsimple', 'RateInfo', [StubRate, SpotRate], ... 'LatestFloatingRate', LatestFloatingRate, 'Reset', Reset, 'Basis', Basis)
Margin = 53.2830
AdjPrice = 99.9673
Calculate adjustedtotal
margin.
[Margin, AdjPrice] = floatmargin(Price, Spread, Settle, Maturity, ... 'SpreadType', 'adjustedtotal', 'RateInfo', [StubRate, SpotRate], ... 'LatestFloatingRate', LatestFloatingRate, 'Reset', Reset, 'Basis', Basis)
Margin = 53.4463
AdjPrice = 99.9673
Use floatmargin
to calculate margin measures for spreadforlife
, adjustedsimple
, and adjustedtotal
for a floating-rate note using datetime
inputs.
Price = 99.99; Spread = 50; Settle = '20-Jan-2011'; Maturity = '15-Jan-2012'; LatestFloatingRate = 0.05; StubRate = 0.049; SpotRate = 0.05; Reset = 4; Basis = 2; Settle = datetime(Settle,'Locale','en_US'); Maturity = datetime(Maturity,'Locale','en_US'); [Margin, AdjPrice] = floatmargin(Price, Spread, Settle, Maturity, ... 'SpreadType', 'adjustedsimple', 'RateInfo', [StubRate, SpotRate], ... 'LatestFloatingRate', LatestFloatingRate, 'Reset', Reset, 'Basis', Basis)
Margin = 53.2830
AdjPrice = 99.9673
Price
— Bond prices where spreads are to be computedBond prices where spreads are to be computed, specified as a
NINST
-by-1
matrix.
Data Types: double
Spread
— Number of basis points over the reference rateNumber of basis points over the reference rate, specified as a
NINST
-by-1
matrix.
Data Types: double
Settle
— Settlement date of the floating-rate bondsSettlement date of the floating-rate bonds, specified as serial date
number, date character vector, or datetime array. If supplied as a
NINST
-by-1
vector of dates,
all settlement dates must be the same (only a single settlement date is
supported)
Data Types: double
| char
| datetime
Maturity
— Maturity date of the floating-rate bondMaturity date of the floating-rate bond, specified as serial date number, date character vector, or datetime array.
Data Types: double
| char
| datetime
Specify optional
comma-separated pairs of Name,Value
arguments. Name
is
the argument name and Value
is the corresponding value.
Name
must appear inside quotes. You can specify several name and value
pair arguments in any order as
Name1,Value1,...,NameN,ValueN
.
[Margin,AdjPrice] = floatmargin(Price,Spread,Settle,Maturity,
'SpreadType','adjustedtotal','RateInfo',[StubRate,SpotRate],'LatestFloatingRate',.0445,'Reset',2,'Basis',5)
'SpreadType'
— Type of spread to calculatespreadforlife
(default) | adjustedsimple
adjustedtotal
Type of spread to calculates, specified by type, specified as
spreadforlife
,adjustedsimple
,
or adjustedtotal
.
Note
If the SpreadType
is
spreadforlife
(default), then the
name-value arguments LatestFloatingRate
and
RateInfo
are not used. If the
SpreadType
is
adjustedsimple
or
adjustedtotal
, then the name-value
arguments LatestFloatingRate
and
RateInfo
must be specified.
Data Types: double
'LatestFloatingRate'
— Rate for next floating payment set at last reset dateRate for the next floating payment set at the last reset date,
specified as NINST
-by-1
vector.
Note
This rate must be specified for a
SpreadType
of
adjustedsimple
and
adjustedtotal
.
Data Types: double
'RateInfo'
— Interest-rate informationinterest-rate information, specified as
NINST
-by-2
vector where
the:
First column is the stub rate between the settlement date and the first coupon rate.
Second column is the reference rate for the term of
the floating coupons (for example, the 3-month LIBOR
from settlement date for a bond with a
Reset
of
4
).
Note
The RateInfo
must be specified for
SpreadType
of
adjustedsimple
and
adjustedtotal
.
Data Types: double
'Reset'
— Frequency of payments per year1
(default) | numericFrequency of payments per year, specified as
NINST
-by-1
vector.
Data Types: double
'Basis'
— Day-count basis used for time factor calculations0
(actual/actual) (default) | integers of the set [0...13]
| vector of integers of the set [0...13]
Day-count basis used for time factor calculations, specified as a
NINST
-by-1
vector. Values
are:
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
'Principal'
— Notional principal amounts100
(default) | numericNotional principal amounts, specified as
NINST
-by-1
vector.
Data Types: double
'EndMonthRule'
— End-of-month rule flag1
(in effect) (default) | nonnegative integer 0
or
1
End-of-month rule flag, specified as 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.
0
= Ignore rule, meaning that a
bond coupon payment date is always the same numerical
day of the month.
1
= Set rule on, meaning that a
bond coupon payment date is always the last actual day
of the month.
Data Types: logical
'Holidays'
— Dates for holidaysholidays.m
used (default)Dates for holidays, specified as
NHOLIDAYS
-by-1
vector of
MATLAB® dates using serial date numbers, date character
vectors, or datetime arrays. Holidays are used in computing business
days.
Data Types: double
| char
| datetime
'BusinessDayConvention'
— Business day conventions'actual'
(default) | character vector with values'actual'
,
'follow'
,
'modifiedfollow'
, 'previous'
or
'modifiedprevious'
Business day conventions, specified as a
NINST
-by-1
cell array of
character vectors of business day conventions to be used in
computing payment dates. The selection for business day convention
determines how nonbusiness days are treated. Nonbusiness days are
defined as weekends plus any other date that businesses are not open
(for example, statutory holidays). Values are:
'actual'
— Nonbusiness days
are effectively ignored. Cash flows that fall on
non-business days are assumed to be distributed on the
actual date.
'follow'
— Cash flows that
fall on a nonbusiness day are assumed to be distributed
on the following business day.
'modifiedfollow'
— Cash
flows that fall on a non-business day are assumed to be
distributed on the following business day. However if
the following business day is in a different month, the
previous business day is adopted instead.
'previous'
— Cash flows that
fall on a nonbusiness day are assumed to be distributed
on the previous business day.
'modifiedprevious'
— Cash
flows that fall on a nonbusiness day are assumed to be
distributed on the previous business day. However if the
previous business day is in a different month, the
following business day is adopted instead.
Data Types: char
| cell
Margin
— Spreads for floating-rate bondSpreads for the floating-rate bond, returned as a
NINST
-by-1
vector.
AdjPrice
— Adjusted price used to calculate spreads for SpreadType
of adjustedsimple
and
adjustedtotal
Adjusted price used to calculate spreads for
SpreadType
of adjustedsimple
and adjustedtotal
, returned as a
NINST
-by-1
vector.
[1] Fabozzi, Frank J., Mann, Steven V. Floating-Rate Securities. John Wiley and Sons, New York, 2000.
[2] Fabozzi, Frank J., Mann, Steven V. Introduction to Fixed Income Analytics: Relative Value Analysis, Risk Measures and Valuation. John Wiley and Sons, New York, 2010.
You have a modified version of this example. Do you want to open this example with your edits?