# [R-SIG-Finance] Calculating trailing returns

Am Gut agquantr at gmail.com
Tue Oct 27 21:16:12 CET 2015

```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)
>>
>
>

[[alternative HTML version deleted]]

```