calculate an annualized return for comparing instruments with different length history
Source:R/Return.annualized.R
Return.annualized.RdAn average annualized return is convenient for comparing returns.
Arguments
- R
an xts, vector, matrix, data frame, timeSeries or zoo object of asset returns
- scale
number of periods in a year (daily scale = 252, monthly scale = 12, quarterly scale = 4)
- geometric
utilize geometric chaining (TRUE) or simple/arithmetic chaining (FALSE) to aggregate returns, default TRUE
- na.rm
TRUE/FALSE whether to remove NA values before calculation, default TRUE
Details
Annualized returns are useful for comparing two assets. To do so, you must scale your observations to an annual scale by raising the compound return to the number of periods in a year, and taking the root to the number of total observations: $$prod(1+R_{a})^{\frac{scale}{n}}-1=\sqrt[n]{prod(1+R_{a})^{scale}}-1$$
where scale is the number of periods in a year, and n is the total number of periods for which you have observations.
For simple returns (geometric=FALSE), the formula is:
$$\overline{R_{a}} \cdot scale$$
References
Bacon, Carl. Practical Portfolio Performance Measurement and Attribution. Wiley. 2004. p. 6
Examples
data(managers)
round(Return.annualized(managers[, 1, drop = FALSE]), 4)
#> HAM1
#> Annualized Return 0.1375
round(Return.annualized(managers[, 1:8]), 4)
#> HAM1 HAM2 HAM3 HAM4 HAM5 HAM6 EDHEC LS EQ
#> Annualized Return 0.1375 0.1747 0.1512 0.1215 0.0373 0.1373 0.118
#> SP500 TR
#> Annualized Return 0.0967
round(Return.annualized(managers[, 1:8], geometric = FALSE), 4)
#> HAM1 HAM2 HAM3 HAM4 HAM5 HAM6 EDHEC LS EQ
#> Annualized Return 0.1335 0.1697 0.1494 0.1322 0.0491 0.1327 0.1145
#> SP500 TR
#> Annualized Return 0.104