Documentation Center

  • Trial Software
  • Product Updates

pyld2zero

Zero curve given par yield curve

Syntax

[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates, Settle,
Compounding, Basis, InputCompounding)

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

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.

  • 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.

InputCompounding

(Optional) Scalar value representing the periodicity in which the input par rates were compounded when annualized. The default is the value for Compounding.

Description

[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates, Settle, Compounding, Basis, InputCompounding) returns a zero curve given a par yield curve and its maturity dates.

    Note:   pyld2zero uses zbtprice for computations.

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

  • 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');
InputCompounding = 1;
Compounding = 12;

[ZeroRates, CurveDates] = pyld2zero(ParRates, CurveDates,... 
Settle, Compounding, [], InputCompounding)
ZeroRates =

    0.0455
    0.0492
    0.0512
    0.0513
    0.0504
    0.0504
    0.0502
    0.0514
    0.0535
    0.0523


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

Was this topic helpful?