按行逐列xts列表中的元素

时间:2016-08-15 20:12:12

标签: r split subset xts quantitative-finance

我有一个名为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分钟日内区间的平均绝对值来标准化数据。

数学公式为: enter image description here

我的*代码是

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 

我想从每个元素添加相同的观察结果,以创建上述函数的分母。

0 个答案:

没有答案