approxBondReturn function

Approximate Total Return of Bond

Approximate Total Return of Bond

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:

  1. approximation is based on par yield
  2. 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.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