Calculating trailing returns
Thanks Michael! This has solved my problem! On Mon, Oct 26, 2015 at 12:01 PM, Michael Weylandt <
michael.weylandt at gmail.com> wrote:
On Mon, Oct 26, 2015 at 9:53 AM, Am Gut <agquantr at gmail.com> wrote:
Good Morning Michael, I have simple return data, in a daily periodicity. I am essentially trying to calculate the trailing returns for say 252 periods, assuming I am trying to look at trailing 12 month returns. So I have been trying to use a product function, but I am having trouble specifying a look back period. I did use the apply.rolling function from the PerformanceAnalytics package, but was unable to us the prod function with it- the function was simply returning an average:
You're not passing the function argument correctly (you're passing 'trim=function(x) prod(1+x)-1'). Check the function signature. library(PerformanceAnalytics) data(managers) M1 <- managers[, 1, drop=FALSE] apply.rolling(M1, width=5, FUN=function(x) prod(1+x)-1)[5] ## cumulative return of first 5 observations ## compare to manual calculation prod(M1[1:5]+1) - 1 Michael
##compute 12-month (lookback variable) returnm
List = list()
for (i in 1:ncol(sector_xts))
{
List[[i]] = apply.rolling(sector_xts[,i], function(x) prod(1+x)-1,
width = 252)
}
lookback_returns = do.call(cbind,List)