approxBondReturn | R Documentation |
Approximate the total return of a bond by its current yield, duration and convexity.
approxBondReturn(yield, tm, n = 2, scale = 1/250, pad = NULL)
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: |
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
a numeric vector, with attributes duration
and convexity
Package treasuryTR implements the method as well.
Enrico Schumann
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.
yield0 <- 0.05
tm <- 20
cf <- 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 earned
approxBondReturn(yield = c(yield0, 0.04), tm = tm, n = 1)
## ==> current yield + price changed is earned
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.