Approximate the total return of a bond by its current yield, duration and convexity.
approxBondReturn(yield, tm, n =2, scale =1/250, pad =NULL)
Arguments
yield: a numeric vector
tm: a numeric vector: time-to-maturity
n: number of coupon payments per period
scale: how to scale yield; see Details
pad: how to pad the first observation: NULL (default) means to drop it; useful alternatives are NA or 0
Details
The function approximates the total return of a bond investor, based on changes in yield. The computation is based on a Taylor-series expansion. See the references, in particular concerning the shortcomings of the approximation:
approximation is based on par yield
it relies on yield alone, so does not take into account defaults; so for indices, the approximation should only used for issuers without defaults
Returns
a numeric vector, with attributes duration and convexity
References
Swinkels, L. (2019). Treasury Bond Return Data Starting in 1962. Data. 4 (3).
Tuckman, B. and Serrat, A. (2012). Fixed Income Securities -- Tools for Today's Markets. 3rd edition. Wiley.
Author(s)
Enrico Schumann
Note
Package treasuryTR implements the method as well.
Examples
yield0 <-0.05tm <-20cf <- c(rep(5, tm-1),105)duration(cf,1:tm, yield0)approxBondReturn(yield = c(yield0,0.05), tm = tm, n =1)## ==> no price change, current yield is earnedapproxBondReturn(yield = c(yield0,0.04), tm = tm, n =1)## ==> current yield + price changed is earned