Discount factors from interest rates
Disc = rate2disc(Compounding,Rates,EndTimes) Disc = rate2disc(Compounding,Rates,EndTimes,StartTimes) [Disc,EndTimes,StartTimes] = rate2disc(Compounding,Rates,EndDates,StartDates,ValuationDate) [Disc,EndTimes,StartTimes] = rate2disc(Compounding,Rates,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.
 Scalar value representing the rate at which the input
zero rates were compounded when annualized. This argument determines
the formula for the discount factors (

 Number of points ( 

NoteWhen

 (Optional) 

Note: When

 (Optional) Default = 
 Scalar value in serial date number form representing
the observation date of the investment horizons entered in 
 (Optional) Daycount basis of the instrument when using Usage 2. A vector of integers.
For more information, see basis. 
 (Optional) Endofmonth rule when using Usage 2. A vector. This rule applies only when 
Usage 1: Disc = rate2disc(Compounding,Rates,EndTimes)
or Disc
= rate2disc(Compounding, Rates,EndTimes,StartTimes)
where
interval points are input as times in periodic units.
Usage 2: [Disc,EndTimes,StartTimes]
= rate2disc(Compounding,Rates,EndDates,StartDates, ValuationDate)
or [Disc,EndTimes,StartTimes]
= rate2disc(Compounding,Rates,EndDates,StartDates,ValuationDate,Basis,
EndMonthRule)
where ValuationDate
is
passed and interval points are input as dates.
rate2disc
computes the discounts over a series
of NPOINTS
time intervals given the annualized
yield 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 curve or a forward curve.
The output Disc
is an NPOINTS
byNCURVES
column
vector of discount factors in decimal form representing the value
at time StartTime
of a unit cash flow received
at time EndTime
.
You can specify the investment intervals either with input times
(Usage 1) or with input dates (Usage 2). Entering ValuationDate
invokes
the date interpretation; omitting ValuationDate
invokes
the default time interpretations.
For Usage 1:
StartTimes
is an NPOINTS
by1
column
vector of times starting the interval to discount over, measured in
periodic units.
EndTimes
is an NPOINTS
by1
column
vector of times ending the interval to discount over, measured in
periodic units.
For Usage 2:
StartDates
is an NPOINTS
by1
column
vector of serial dates starting the interval to discount over, measured
in days.
EndDates
is an NPOINTS
by1
column
vector of serial dates ending the interval to discount over, measured
in days.
If Compounding = 365
(daily), StartDates
and EndDates
are
measured in days as in Usage 2. Otherwise,
in 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.
Example 1 demonstrates Usage 1. Compute discounts from a zero curve at 6 months, 12 months, and 24 months. The times to the cash flows are 1, 2, and 4. You are computing the present value (at time 0) of the cash flows.
Compounding = 2; Rates = [0.05; 0.06; 0.065]; EndTimes = [1; 2; 4]; Disc = rate2disc(Compounding, Rates, EndTimes)
Disc = 0.9756 0.9426 0.8799
Example 2 demonstrates Usage 2. Compute discounts from a zero curve at 6 months, 12 months, and 24 months. Use dates to specify the ending time horizon.
Compounding = 2; Rates = [0.05; 0.06; 0.065]; EndDates = ['10/15/97'; '04/15/98'; '04/15/99']; ValuationDate = '4/15/97'; Disc = rate2disc(Compounding, Rates, EndDates, [], ValuationDate)
Disc = 0.9756 0.9426 0.8799
Example 3 demonstrates Usage 1. Compute discounts from the 1year forward rates beginning now, in six months, and in 12 months. Use monthly compounding. The times to the cash flows are 12, 18, 24, and the forward times are 0, 6, 12.
Compounding = 12; Rates = [0.05; 0.04; 0.06]; EndTimes = [12; 18; 24]; StartTimes = [0; 6; 12]; Disc = rate2disc(Compounding, Rates, EndTimes, StartTimes)
Disc = 0.9513 0.9609 0.9419