DURATION Function
calculates and returns a scalar containing the modified duration of
a non-contingent cash-flow.
The Duration function returns the modified duration of a non-contingent
cash-flow as a scalar.
- times
- is an n-dimensional column vector of times.
Elements should be non-negative.
- flows
- is an n-dimensional column vector of cash-flows.
- ytm
- is the per-period yield-to-maturity of the
cash-flow stream.
This is a scalar and should be positive.
Duration of a security is generally defined as:
-
D = -[( [dP/P] )/ dy ]
In other words, it is the relative change in price for a unit change
in yield. Since prices move in the opposite direction to yields,
the sign change preserves positivity for convenience. With cash-flows
that are not yield-sensitive and the assumption of
parallel shifts to a flat term-structure, duration is given by:
where P is the present value,
y is the per period effective yield-to-maturity,
K is the number of cash-flows, the k-th
cash flow being c(k), tk periods from the present.
This measure is referred to as modified duration to
differentiate it from the first duration measure ever proposed,
Macaulay duration:
This expression also reveals the reason for the name duration, since
it is a present-value-weighted average of the duration (i.e. timing) of
all the cash-flows and is hence an "average time-to-maturity" of the
bond.
Example
proc iml;
times=1;
ytm=.1;
flow=10;
duration=duration(times,flow,ytm);
print duration;
quit;
DURATION
0.9090909
Copyright © 1999 by SAS Institute Inc., Cary, NC, USA. All rights reserved.