Documentation

disc2rate

Interest rates from cash flow discounting factors

Syntax

Rates = disc2rate(Compounding,Disc,EndTimes)
Rates = disc2rate(Compounding,Disc,EndTimes,StartTimes)
[Rates,EndTimes,StartTimes] = disc2rate(Compounding,Disc,EndDates,StartDates,ValuationDate)
[Rates,EndTimes,StartTimes] = disc2rate(Compounding,Disc,EndDates,StartDates,ValuationDate,Basis,EndMonthRule)

Usage 1: Interval points are input as times in periodic units.

Usage 2: ValuationDate is passed and interval points are input as dates.

Arguments

Compounding

Scalar value representing the rate at which the input zero rates were compounded when annualized. This argument determines the formula for the discount factors (Disc):

• Compounding = 0 for simple interest

• Disc = 1/(1 + Z * T), where T is time in years and simple interest assumes annual times F = 1.

• Compounding = 1, 2, 3, 4, 6, 12

• Disc = (1 + Z/F)^(-T), where F is the compounding frequency, Z is the zero rate, and T is the time in periodic units, for example, T = F is one year.

• Compounding = 365

• Disc = (1 + Z/F)^(-T), where F is the number of days in the basis year and T is a number of days elapsed computed by basis.

• Compounding = −1

• Disc = exp(-T*Z), where T is time in years.

Disc

Number of points (NPOINTS) by number of curves (NCURVES) matrix of discounts. Disc are unit bond prices over investment intervals from StartTimes, when the cash flow is valued, to EndTimes, when the cash flow is received.

EndTimes

NPOINTS-by-1 vector or scalar of times in periodic units ending the interval to discount over.

Note

When ValuationDate is not passed, the EndTimes and StartTimes arguments are interpreted as times.

StartTimes

(Optional) NPOINTS-by-1 vector or scalar of times in periodic units starting the interval to discount over. Default = 0.

EndDates

NPOINTS-by-1 vector or scalar of serial maturity dates ending the interval to discount over.

Note

When ValuationDate is passed, EndDates and StartDates arguments are interpreted as dates. The date ValuationDate is used as the zero point for computing the times.

StartDates

(Optional) NPOINTS-by-1 vector or scalar of serial dates starting the interval to discount over. Default = ValuationDate. StartDates must be earlier than EndDates.

ValuationDate

Scalar value in serial date number form representing the observation date of the investment horizons entered in StartDates and EndDates. Required in Usage 2. Omitted or passed as an empty matrix to invoke Usage 1.

Basis

(Optional) Day-count basis of the instrument when using Usage 2. A vector of integers.

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

• 13 = BUS/252

EndMonthRule

(Optional) End-of-month rule when using Usage 2. A vector. This rule applies only when Maturity is an end-of-month date for a month having 30 or fewer days. 0 = ignore rule, meaning that a bond's coupon payment date is always the same numerical day of the month. 1 = set rule on (default), meaning that a bond's coupon payment date is always the last actual day of the month.

Description

Usage 1: Rates = disc2rate(Compounding,Disc,EndTimes) or Rates = disc2rate(Compounding, Disc,EndTimes,StartTimes) where interval points are input as times in periodic units.

Usage 2: [Rates,EndTimes,StartTimes] = disc2rate(Compounding,Disc,EndDates,StartDates, ValuationDate) or [Rates,EndTimes,StartTimes] = disc2rate(Compounding,Disc,EndDates,StartDates,ValuationDate,Basis, EndMonthRule) where ValuationDate is passed and interval points are input as dates.

disc2rate computes the yields over a series of NPOINTS time intervals given the cash flow discounts over those intervals. NCURVES different rate curves can be translated at once if they have the same time structure. The time intervals can represent a zero or a forward curve.

Rates is an NPOINTS-by-NCURVES column vector of yields in decimal form over the NPOINTS time intervals.

Specify the investment intervals with either input times (Usage 1) or input dates (Usage 2). Entering ValuationDate invokes the date interpretation; omitting ValuationDate invokes the default time interpretations.

For Usage 1:

• StartTimes is an NPOINTS-by-1 column vector of times starting the interval to discount over, measured in periodic units.

• EndTimes is an NPOINTS-by-1 column vector of times ending the interval to discount over, measured in periodic units.

For Usage 2:

• StartDates is an NPOINTS-by-1 column vector of serial dates starting the interval to discount over, measured in days.

• EndDates is an NPOINTS-by-1 column vector of serial date ending the interval to discount over, measured in days.

If Compounding = 365 (daily), StartTimes and EndTimes are measured in days for Usage 2. Otherwise, for Usage 1, the arguments contain values, T, computed from SIA semiannual time factors, Tsemi, by the formula T = Tsemi/2 * F, where F is the compounding frequency.