| Financial Toolbox™ | ![]() |
Zero curve given par yield curve
[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates, Settle, Compounding, Basis, OutputCompounding)
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 | Serial date number that is the common settlement date for the par rates. | |
Compounding | (Optional) Scalar value representing the periodicity in which the output zero rates are compounded when annualized. Allowed values are: | |
1 | Annual compounding | |
2 | Semiannual compounding (default) | |
3 | Compounding three times per year | |
4 | Quarterly compounding | |
6 | Bimonthly compounding | |
12 | Monthly compounding | |
365 | Daily compounding | |
Basis | (Optional) Day-count basis used to annualize the zero rates.
| |
OutputCompounding | (Optional) Scalar value representing the periodicity in which the input par rates were compounded when annualized. The default is the value for Compounding. | |
[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates, Settle, Compounding, Basis, OutputCompounding) 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. |
Given
A par yield curve over a set of maturity dates
A settlement date
Annual compounding for the input par rates and monthly compounding for the output zero curve
compute a zero yield curve.
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');
Compounding = 1;
OutputCompounding = 12;
[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates,...
Settle, Compounding, [], OutputCompounding)
ZeroRates =
0.0484
0.0529
0.0549
0.0550
0.0547
0.0544
0.0545
0.0551
0.0572
0.0557
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.
zero2pyld and other functions for Term Structure of Interest Rates
![]() | pvvar | rdivide | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |