time2date

Dates from time and frequency

Syntax

Dates = time2date(Settle,Times,Compounding,Basis,EndMonthRule)

Arguments

Settle

Settlement date. A vector of serial date numbers or date character vectors.

Times

Vector of times corresponding to the compounding value. Times must be equal to or greater than 0.

Compounding

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

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

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

Basis

(Optional) Day-count basis of the instrument. 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

For more information, see Basis.

EndMonthRule

(Optional) End-of-month rule. 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

Dates = time2date(Settle,Times,Compounding,Basis,EndMonthRule) computes dates corresponding to compounded rate quotes between Settle and time factors.

Note

To obtain accurate results from this function, the Basis and Dates arguments must be consistent. If the Dates argument contains months that have 31 days, Basis must be one of the values that allow months to contain more than 30 days; for example, Basis = 0, 3, or 7.

The time2date function is the inverse of date2time.

Examples

Show that date2time and time2date are the inverse of each other. First compute the time factors using date2time.

Settle = '1-Sep-2002';
Dates = datenum(['31-Aug-2005'; '28-Feb-2006'; '15-Jun-2006'; 
                 '31-Dec-2006']);
Compounding = 2;
Basis = 0;
EndMonthRule = 1;
Times = date2time(Settle, Dates, Compounding, Basis,... 
                  EndMonthRule)
Times =

    5.9945
    6.9945
    7.5738
    8.6576

Now use the calculated Times in time2date and compare the calculated dates with the original set.

Dates_calc = time2date(Settle, Times, Compounding, Basis,... 
                  EndMonthRule)

Dates_calc =

      732555
      732736
      732843
      733042

datestr(Dates_calc)
ans =

31-Aug-2005
28-Feb-2006
15-Jun-2006
31-Dec-2006

Introduced before R2006a