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)

  • 13 = BUS/252

For more information, see basis.

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

expand all

Determine the Zero Curve Given a Discount Curve and Maturity Dates

Given the following 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 disc2zero which returns the zero curve ZeroRates at the maturity dates CurveDates.

[ZeroRates, CurveDates] = disc2zero(DiscRates, CurveDates,...
Settle, Compounding, Basis)
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

Was this topic helpful?