Quantcast

Documentation Center

  • Trial Software
  • Product Updates

zero2disc

Discount curve given zero curve

Syntax

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

Arguments

ZeroRates

Number of bonds (NUMBONDS)-by-1 vector of annualized zero rates, as decimal fractions. In aggregate, the rates constitute an implied zero curve for the investment horizon represented by CurveDates.

CurveDates

NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the zero rates.

Settle

Serial date number that is the common settlement date for the zero rates; that is, the settlement date for the bonds from which the zero curve was bootstrapped.

Compounding

(Optional) Scalar that indicates the compounding frequency per year used for annualizing the input zero rates in ZeroRates. 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 used for annualizing the input zero rates.

  • 0 = actual/actual (default)

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (BMA)

  • 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/actual (ISDA)

  • 13 = BUS/252

For more information, see basis.

Description

[DiscRates, CurveDates] = zero2disc(ZeroRates, CurveDates, Settle, Compounding, Basis) returns a discount curve given a zero curve and its maturity dates.

DiscRates

A NUMBONDS-by-1 vector of discount factors, as decimal fractions. In aggregate, the factors in constitute a discount curve for the investment horizon represented by CurveDates.

CurveDates

A NUMBONDS-by-1 vector of maturity dates (as serial date numbers) that correspond to the discount rates. This vector is the same as the input vector CurveDates.

Examples

expand all

Compute a Discount Curve Given a Zero Curve and Maturity Dates

Given a zero curve over a set of maturity dates and a settlement date.

ZeroRates = [0.0464
             0.0509
             0.0524
             0.0525
             0.0531
             0.0525
             0.0530
             0.0531
             0.0549
             0.0536];

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');
The zero curve is compounded daily on an actual/365 basis.
Compounding = 365;
Basis = 3;

Execute the function zero2disc which returns the discount curve DiscRates at the maturity dates CurveDates.

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

    0.9996
    0.9947
    0.9896
    0.9866
    0.9826
    0.9787
    0.9745
    0.9665
    0.9552
    0.9466


CurveDates =

      730796
      730831
      730866
      730887
      730914
      730943
      730971
      731027
      731098
      731167

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

See Also

Was this topic helpful?