Price callable bond using Agency OAS model
specifies options using one or more name-value
pair arguments in addition to the input arguments
in the previous syntax.Price
= agencyprice(___,Name,Value
)
Price
This example shows how to compute the agency Price
.
Settle = datenum('20-Jan-2010'); ZeroRates = [.07 .164 .253 1.002 1.732 2.226 2.605 3.316 ... 3.474 4.188 4.902]'/100; ZeroDates = daysadd(Settle,360*[.25 .5 1 2 3 4 5 7 10 20 30],1); ZeroData = [ZeroDates ZeroRates]; Maturity = datenum('30-Dec-2013'); CouponRate = .022; OAS = 6.53/10000; Vol = .5117; CallDate = datenum('30-Dec-2010'); Price = agencyprice(ZeroData, OAS, CouponRate, Settle, Maturity, Vol, CallDate)
Price = 99.4212
ZeroData
— Zero curveZero curve, specified as an
numRates
-by-2
matrix where the first column is zero dates and
the second column is the accompanying zero
rates.
Data Types: double
OAS
— Option-adjusted spreadsOption-adjusted spreads, specified as an
numBonds
-by-1
vector expressed as a decimal (that is, 50 basis
points is entered as
.005
).
Data Types: double
CouponRate
— Coupon ratesCoupon rates, specified as an
numBonds
-by-1
vector in decimals.
Data Types: double
Settle
— Settlement dateSettlement date, specified as a scalar serial date number.
Note
The Settle
date must be
an identical settlement date for all the bonds and
the zero curve.
Data Types: double
Maturity
— Maturity dateMaturity date, specified as a
numBonds
-by-1
vector.
Data Types: double
Vol
— VolatilitiesVolatilities specified as a scalar or an
numBonds
-by-1
vector in decimals. Vol
is the
volatility of interest rates corresponding to the
time of the CallDate
.
Data Types: double
CallDate
— Call datesCall dates, specified as an
numBonds
-by-1
vector.
Data Types: double
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
.
Price =
agencyprice(ZeroData,OAS,CouponRate,Settle,Maturity,Vol,CallDate,'Basis',7,'Face',1000)
'Basis'
— Day-count basis0
(actual/actual) (default) | integer from 0
to
13
Day-count basis, specified as the
comma-separated pair consisting of
'Basis'
and a
N
-by-1
vector using the following values:
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
'CurveBasis'
— Curve basis0
(actual/actual) (default) | integer from 0
to
13
Curve basis, specified as the
comma-separated pair consisting of
'CurveBasis'
and a
N
-by-1
vector using the following values:
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
'CurveCompounding'
— Compounding frequency of the zero curve2
(semiannual) (default) | possible values include:
–1
, 0
,
1
, 2
,
3
, 4
,
6
,
12
.Compounding frequency of the zero curve,
specified as the comma-separated pair consisting
of 'CurveCompounding'
and a
N
-by-1
vector using the supported values:
–1
, 0
,
1
, 2
,
3
, 4
,
6
, and 12
.
Data Types: double
'EndMonthRule'
— End-of-month rule flag 1
(in
effect) (default) | nonnegative integer
[0,1]
End-of-month rule flag, specified as the
comma-separated pair consisting of
'EndMonthRule'
and a
nonnegative integer [0
,
1
] using a
N
-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
'Face'
— face value of bond100
(default) | vectorFace value of bond, specified as the
comma-separated pair consisting of
'Face'
and an
N
-by-1
vector of numeric values.
Data Types: double
'FirstCouponDate'
— Irregular first coupon dateFirstCouponDate
, the cash flow
payment dates are determined from other
inputs (default) | serial date numberIrregular first coupon date, specified as
the comma-separated pair consisting of
'FirstCouponDate'
and a
NINST
-by-1
vector using a serial date numbers.
When FirstCouponDate
and
LastCouponDate
are both
specified, FirstCouponDate
takes precedence in determining the coupon payment
structure.
Data Types: double
'InterpMethod'
— Interpolation method'linear'
(default) | 'cubic'
,'pchip'
Interpolation method, specified as the
comma-separated pair consisting of
'InterpMethod'
and a
N
-by-1
vector using a supported value. For more
information on interpolation methods, see
interp1
.
Data Types: char
'IssueDate'
— Bond issue dateIssueDate
, the cash flow
payment dates are determined from other
inputs (default) | serial date numberBond issue date, specified as the
comma-separated pair consisting of
'IssueDate'
and a
N
-by-1
vector using serial date numbers.
Data Types: double
'LastCouponDate'
— Irregular last coupon dateIrregular last coupon date, specified as the
comma-separated pair consisting of
'LastCouponDate'
and a
N
-by-1
vector using serial date numbers
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.
Data Types: double
'Period'
— Coupons per year2
per
year (default) | vectorCoupons per year, specified as the
comma-separated pair consisting of
'Period'
and an
N
-by-1
vector. Values for Period
are
0
, 1
,
2
, 3
,
4
, 6
, and
12
.
Data Types: double
'StartDate'
— Forward starting date of paymentsSettle
date (default) | serial date numberForward starting date of payments (the date
from which a bond cash flow is considered),
specified as the comma-separated pair consisting
of 'StartDate'
and a
N
-by-1
vector using serial date numbers.
If you do not specify
StartDate
, the effective start
date is the Settle
date.
Data Types: double
Price
— PricesPrices returned as an
numBonds
-by-1
matrix.
The BMA European Callable Securities Formula provides a standard methodology for computing price and option-adjusted spread for European Callable Securities (ECS).
[1] SIFMA, The BMA European Callable Securities
Formula, https://www.sifma.org
.
Existe una versión modificada de este ejemplo en su sistema. ¿Prefiere abrir esta versión?
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.