disc2zero

Zero curve given discount curve

Syntax

[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates, Settle, 
Compounding, Basis)

Arguments

DiscRates

Column vector of discount factors, as decimal fractions. In aggregate, the factors in DiscRates constitute a discount curve for the investment horizon represented by CurveDates.

CurveDates

Column vector of maturity dates (as serial date numbers) that correspond to the discount factors in DiscRates.

Settle

Serial date number that is the common settlement date for the discount rates in DiscRates.

Compounding

(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

Semiannual compounding (default)

3

Compounding three times per year

4

Quarterly compounding

6

Bimonthly compounding

12

Monthly compounding

365

Daily compounding

-1

Continuous compounding

Basis

(Optional) Day-count basis for annualizing the output zero rates.

  • 0 = actual/actual (default)

  • 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 (ISMA)

  • 9 = actual/360 (ISMA)

  • 10 = actual/365 (ISMA)

  • 11 = 30/360E (ISMA)

  • 12 = actual/365 (ISDA)

Description

[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates, Settle, Compounding, Basis) returns a zero curve given a discount 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. The zero rates are the yields to maturity on theoretical zero-coupon bonds.

CurveDates

Column vector of maturity dates (as serial date numbers) that correspond to the zero rates. This vector is the same as the input vector CurveDates.

Examples

Given discount factors DiscRates over a set of maturity dates CurveDates, and a settlement date Settle

DiscRates = [0.9996
             0.9947
             0.9896
             0.9866
             0.9826
             0.9786
             0.9745
             0.9665
             0.9552
             0.9466];

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 daily compounding for the output zero curve, on an actual/365 basis.

Compounding = 365;
Basis = 3;

Execute the function

[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates,... 
Settle, Compounding, Basis)

which returns the zero curve ZeroRates at the maturity dates CurveDates.

ZeroRates =
    0.0487
    0.0510
    0.0523
    0.0524
    0.0530
    0.0526
    0.0530
    0.0532
    0.0549
    0.0536

CurveDates =
      730796
      730831
      730866
      730887
      730914
      730943
      730971
      731027
      731098
      731167

For readability, DiscRates and ZeroRates are shown here only to the basis point. However, MATLAB® software computed them at full precision. If you enter DiscRates as shown, ZeroRates may differ due to rounding.

See Also

zero2disc and other functions for Term Structure of Interest Rates

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS