我正在尝试计算滚动 20 周期的历史波动率。我接受每日回报:
ret<-ROC(data1)
然后我使用 rollapply 获取每列的 20 天 HV:
vol<-rollapply(ret,20,sd,by.column=T,fill=NA)
问题是 vol 中的观察结果在十天后开始出现,这是错误的,因为我指定了 20。
为了演示,这里是数据示例:
0.000000000, 0.005277045, 0.023622047, 0.002564103,-0.002557545, -0.020512821,
0.007853403,-0.012987013, 0.007894737, 0.015665796, 0.000000000, -0.002570694,
0.002577320, -0.015424165, 0.002610966, 0.010416667, 0.002577320, 0.015424165,
0.000000000, -0.002531646, -0.002538071, 0.030534351, 0.014814815, -0.007299270,
-0.009803922, -0.012376238, 0.002506266, -0.015000000,-0.002538071, 0.002544529
假设上面的数据存储在 x 中,那么:
rollapply(x,20,sd,fill=NA)
将在第 10 行而不是 20 行产生第一次观察。sd 也是错误的。
我应该在这里遗漏一些东西......