Financial Toolbox |
 |
pyld2zero
Zero curve given a par yield curve
Syntax
[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates, Settle,
OutputCompounding, OutputBasis, InputCompounding, InputBasis,
MaxIterations)
Arguments
ParRates
|
Column vector of annualized implied par yield rates, as decimal fractions. (Par yields = coupon rates.) In aggregate, the yield rates in ParRates constitute an implied par yield curve for the investment horizon represented by CurveDates .
|
CurveDates
|
Column vector of maturity dates (as serial date numbers) that correspond to the par rates.
|
Settle
|
A serial date number that is the common settlement date for the par rates.
|
OutputCompounding
|
(Optional) Output compounding. A scalar that sets the compounding frequency per year for annualizing the output zero rates. Allowed values are:
|
|
1
|
annual compounding
|
|
2
|
semi-annual compounding (default)
|
|
3
|
compounding three times per year
|
|
4
|
quarterly compounding
|
|
6
|
bimonthly compounding
|
|
12
|
monthly compounding
|
|
365
|
daily compounding
|
|
-1
|
continuous compounding
|
OutputBasis
|
(Optional) Output day-count basis for annualizing the output zero rates. Allowed values are:
|
|
0
|
actual/actual (default)
|
|
1
|
30/360
|
|
2
|
actual/360
|
|
3
|
actual/365
|
InputCompounding
|
(Optional) A scalar that indicates the compounding frequency per year used for annualizing the input par rates. Allowed values are the same as for OutputCompounding . Default = OutputCompounding .
|
InputBasis
|
(Optional) Input day-count basis used for annualizing the par rates. Allowed values are the same as for OutputBasis . Default = OutputBasis .
|
MaxIterations
|
(Optional) Maximum number of iterations for deriving the zero rates in ZeroRates . A scalar. Default = 200. A larger value may slow processing.
|
Description
[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates, Settle,
OutputCompounding, OutputBasis, InputCompounding, InputBasis,
MaxIterations)
returns a zero curve given a par yield curve and its maturity dates.
ZeroRates
|
Column vector of decimal fractions. In aggregate, the rates in ZeroRates constitute a zero curve for the investment horizon represented by CurveDates .
|
CurveDates
|
Column vector of maturity dates (as serial date numbers) corresponding to the zero rates. This vector is the same as the input vector CurveDates .
|
Examples
Given a par yield curve over a set of maturity dates and a settlement date
ParRates = [0.0479
0.0522
0.0540
0.0540
0.0536
0.0532
0.0532
0.0539
0.0558
0.0543];
CurveDates = [datenum('06-Nov-2000')
datenum('11-Dec-2000')
datenum('15-Jan-2001')
datenum('05-Feb-2001')
datenum('04-Mar-2001')
datenum('02-Apr-2001')
datenum('30-Apr-2001')
datenum('25-Jun-2001')
datenum('04-Sep-2001')
datenum('12-Nov-2001')];
Settle = datenum('03-Nov-2000');
Set monthly compounding for the zero curve, on an actual/365 basis. The par yield curve was compounded annually on an actual/actual basis. Derive the zero curve within 50 iterations.
OutputCompounding = 12;
OutputBasis = 3;
InputCompounding = 1;
InputBasis = 0;
MaxIterations = 50;
Execute the function
[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates,...
Settle, OutputCompounding, OutputBasis, InputCompounding,...
InputBasis, MaxIterations)
which returns the zero curve ZeroRates
at the maturity dates CurveDates
.
ZeroRates
=
0.0461
0.0498
0.0519
0.0520
0.0510
0.0510
0.0508
0.0520
0.0543
0.0530
CurveDates
=
730796
730831
730866
730887
730914
730943
730971
731027
731098
731167
For readability, ParRates
and ZeroRates
are shown only to the basis point. However, MATLAB computes them at full precision. If you enter ParRates
as shown, ZeroRates
may differ due to rounding.
See Also
zero2pyld
and other functions for Term Structure of Interest Rates
| pvvar | | ret2tick |  |