Documentation |
Change time intervals defining interest-rate environment
[Rates, EndTimes, StartTimes] = ratetimes(Compounding,
RefRates, RefEndTimes, RefStartTimes, EndTimes, StartTimes) [Rates, EndTimes, StartTimes] = ratetimes(Compounding,
RefRates, RefEndDates, RefStartDates, EndDates, StartDates,
ValuationDate)
Usage 1: ValuationDate not passed; third through sixth arguments are interpreted as times.
Usage 2: ValuationDate passed and interval points input as dates.
Scalar value representing the rate at which the input zero rates were compounded when annualized. This argument determines the formula for the discount factors: 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 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. | |
RefRates | NREFPTS-by-NCURVES matrix of reference rates in decimal form. RefRates are the yields over investment intervals from RefStartTimes, when the cash flow is valued, to RefEndTimes, when the cash flow is received. |
RefEndTimes | NREFPTS-by-1 vector or scalar of times in periodic units ending the intervals corresponding to RefRates. |
RefStartTimes | (Optional) NREFPTS-by-1 vector or scalar of times in periodic units starting the intervals corresponding to RefRates. Default = 0. |
EndTimes | NPOINTS-by-1 vector or scalar of times in periodic units ending the interval to discount over. |
StartTimes | (Optional) NPOINTS-by-1 vector or scalar of times in periodic units starting the interval to discount over. Default = 0. |
RefEndDates | NREFPTS-by-1 vector or scalar of serial dates ending the intervals corresponding to RefRates. |
RefStartDates | (Optional) NREFPTS-by-1 vector or scalar of serial dates starting the intervals corresponding to RefRates. Default = ValuationDate. |
EndDates | NPOINTS-by-1 vector or scalar of serial maturity dates ending the interval to discount over. |
StartDates | (Optional) NPOINTS-by-1 vector or scalar of serial dates starting the interval to discount over. StartDates must be earlier than EndDates. Default = ValuationDate. |
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. |
[Rates, EndTimes, StartTimes] = ratetimes(Compounding, RefRates, RefEndTimes, RefStartTimes, EndTimes, StartTimes) and [Rates, EndTimes, StartTimes] = ratetimes(Compounding, RefRates, RefEndDates, RefStartDates, EndDates, StartDates, ValuationDate) change time intervals defining an interest-rate environment.
ratetimes takes an interest-rate environment defined by yields over one collection of time intervals and computes the yields over another set of time intervals. The zero rate is assumed to be piece-wise linear in time.
Rates is an NPOINTS-by-NCURVES matrix of rates implied by the reference interest-rate structure and sampled at new intervals.
StartTimes is an NPOINTS-by-1 column vector of times starting the new intervals where rates are desired, measured in periodic units.
EndTimes is an NPOINTS-by-1 column vector of times ending the new intervals, measured in periodic units.
If Compounding = 365 (daily), StartTimes and EndTimes are measured in days. The arguments otherwise contain values, T, computed from SIA semiannual time factors, Tsemi, by the formula T = Tsemi/2 * F, where F is the compounding frequency.
You can specify the investment intervals either with input times (Usage 1) or with input dates (Usage 2). Entering the argument ValuationDate invokes the date interpretation; omitting ValuationDate invokes the default time interpretations.
Example 1. The reference environment is a collection of zero rates at 6, 12, and 24 months. Create a collection of 1-year forward rates beginning at 0, 6, and 12 months.
RefRates = [0.05; 0.06; 0.065]; RefEndTimes = [1; 2; 4]; StartTimes = [0; 1; 2]; EndTimes = [2; 3; 4]; Rates = ratetimes(2, RefRates, RefEndTimes, 0, EndTimes,... StartTimes)
Rates = 0.0600 0.0688 0.0700
Example 2. Interpolate a zero yield curve to different dates. Zero curves start at the default date of ValuationDate.
RefRates = [0.04; 0.05; 0.052]; RefDates = [729756; 729907; 730121]; Dates = [730241; 730486]; ValuationDate = 729391; Rates = ratetimes(2, RefRates, RefDates, [], Dates, [],... ValuationDate)
Rates = 0.0520 0.0520