如何计算平均调整后的异常收益

时间:2019-08-06 14:30:16

标签: r loops return mean

我想计算几家公司的平均调整后收益。 我有月度数据。我想计算最近12个月的滚动平均值。之后,我需要从月收益中减去滚动平均值。

起初,我使用quantmodlapply来计算收益:

library(quantmod)

stocks=new.env()

startDate=as.Date("2008-07-31")

endDate=as.Date("2019-06-30")

tickers=c("ADS.DE","DAI.DE","BMW.DE")

getSymbols(tickers,src="yahoo",env=stocks,from=startDate,to=endDate)

stocksL=as.list(stocks)

returns.daily=lapply(stocksL, function(x) diff(log(Cl(x))))

returns.montly=lapply(returns.daily, apply.monthly, sum, na.rm=TRUE)

在下一步中,我必须计算每个月最近12个月的滚动平均值。我的估计期限是2009年7月31日至2019年6月30日。 之后,我必须从每个月的收益中减去滚动平均值。

1 个答案:

答案 0 :(得分:0)

您可以使用rollapply()功能。假设您要计算每个月的年均收益,则代码为:


library(zoo)

returns.rolling=lapply(returns.montly, 
                       function(x) rollapply(x, width = 12, FUN = mean))

aR = Map("-",returns.montly, lapply(returns.rolling, stats::lag))