Documentation

date2time

Time and frequency from dates

Syntax

[TFactors, F] = date2time(Settle, Maturity, Compounding, Basis,
EndMonthRule)

Arguments

Settle

Settlement date, a vector specified as serial date numbers, date character vectors, or datetime arrays.

Maturity

A vector of maturity dates, specified as serial date numbers, date character vectors, or datetime arrays.

Compounding

(Optional) Scalar value representing the rate at which the input zero rates were compounded when annualized. The default Compounding value is 2. 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.

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 (PSA)

  • 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

[TFactors, F] = date2time(Settle, Maturity, Compounding, Basis, EndMonthRule) computes time factors appropriate to compounded rate quotes between the settlement and maturity dates.

TFactors is a vector of time factors.

F is a scalar of related compounding frequencies.

date2time is the inverse of time2date.

Definitions

The difference between yearfrac and date2time is that date2time counts full periods as a whole integer, even if the number of actual days in the periods are different. yearfrac does not count full periods. For example,

yearfrac('1/1/2000', '1/1/2001', 9)
ans =

    1.0167

yearfrac for Basis 9 (ACT/360 ICMA) calculates 366/360 = 1.0167. So, even if the dates have the same month and date, with a difference of 1 in the year, the returned value may not be exactly 1. On the other hand, date2time calculates one full year period:

date2time('1/1/2000', '1/1/2001', 1, 9)
ans =

     1

Examples

collapse all

Compute date2time Using an actual/actual Basis

To get the date2time period between '31-Jul-2015' and '30-Sep-2015' using an actual/actual basis:

date2time('31-Jul-2015', '30-Sep-2015', 2, 0, 1)
ans =

    0.3333

When using date2time quasi coupon, two quasi coupon dates are computed for a bond with a maturity corresponding to the Dates input. In this case, that would be "30-Sep-2015". Assuming that the compounding frequency is 2, the other quasi coupon date is six months prior to this date. Assuming the end of month rule is in place, then the other quasi coupon date is "31-Mar-2015". You can use these two dates to compute the total number of actual days in a period (which is 183). Given this, the fraction of time between the start and end date for the actual/actual basis is computed as follows.

(Actual Days between Start Date and End Date)/(Actual Number of Days between Quasi Coupon Dates)

There are 61 days between 31-Jul-2015 and 30-Sep-2015 and 183 days between the quasi coupon dates ("31-Mar-2015" and "30-Sep-2015") which leads to a final result of 61/183 or exactly 1/3.

Related Examples

Introduced before R2006a

Was this topic helpful?