Skip to contents

An average annualized return is convenient for comparing returns.

Usage

Return.annualized(R, scale = NA, geometric = TRUE, na.rm = TRUE)

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

See also

Author

Peter Carl

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