我有一个名为data
的xts对象,其中包含从2015-01-01 17:00:00到2015-12-31 17:00:00的5分钟回报。每个交易日从17:00:00开始,同时在第二天结束,每天总共返回288 [(24小时* 60分钟)/ 5分钟= 288日内返回]。收益表示为
head(data, 5)
DPRICE
2015-01-01 17:00:00 0.000000e+00
2015-01-01 17:05:00 9.797714e-05
2015-01-01 17:10:00 2.027022e-04
2015-01-01 17:15:00 2.735798e-04
2015-01-01 17:20:00 7.768653e-05
tail(data, 5)
DPRICE
2015-12-31 16:40:00 0.0001239429
2015-12-31 16:45:00 0.0001272704
2015-12-31 16:50:00 0.0010186764
2015-12-31 16:55:00 0.0006841370
2015-12-31 17:00:00 0.0002481227
根据McMillan和Speight Daily FX Volatility Forecasts(2012),我试图按照每个5分钟日内区间的平均绝对值来标准化数据。
我的*代码是
library(xts)
std_data = abs(data) #create absolute returns
D <- split(std_data, "days") #splits data to days
mts.days <- lapply(seq_along(D) - 1, function(i) {
if (i > 0) rbind(D[[i]]["T17:00:00/T23:55:00"], D[[i + 1]]["T00:00:00/T16:55:00"])
}) #creates a list with 365 elements each containing 288 unique returns
dummy = mapply(sum, mts.days) #add the first,second... observations from each element
使用此代码,我创建了一个包含365个xts元素的列表,每个元素都有维度
> dim(mts.days[[2]])
[1] 288 1
我想从每个元素添加相同的观察结果,以创建上述函数的分母。