感谢指向na.locf(Darren)的指针,更新了以下示例和结果:
我有刻度数据,我已将其汇总到每日数据中,以计算每日波动率。现在我已经创建了每日波动率,我想再次将每日数据与tick数据合并。但是,我怀疑由于每日和滴答数据的指数差异,合并仍然是“空的”。
如何将每日数据与tick数据合并?
示例:
AGL.xts <- xts(AGL_Frame[,-1], order.by=AGL_Frame[,1])
AGL.xts
Close
2012-01-19 16:46:11 32376
2012-01-19 16:46:32 32377
2012-01-19 16:46:32 32376
2012-01-19 16:46:42 32376
2012-01-19 16:46:42 32376
2012-01-19 16:46:42 32376
2012-01-19 16:46:45 32376
2012-01-19 16:46:48 32351
2012-01-19 16:46:54 32351
2012-01-19 16:46:57 32351
2012-01-19 16:46:57 32351
2012-01-19 16:47:14 32351
2012-01-19 16:47:14 32351
2012-01-19 16:47:19 32350
2012-01-19 16:47:32 32349
2012-01-19 16:47:32 32349
my.sample1 <- to.daily(AGL.xts[,1],1,'daily')
my.sample1
daily.Open daily.High daily.Low daily.Close
2011-12-01 17:00:27 31000 31479 30685 31350
2011-12-05 17:00:28 31225 31700 31015 31645
2011-12-06 17:00:22 31290 31626 31126 31500
2011-12-07 17:00:12 31550 31840 31215 31366
2011-12-08 17:00:09 31350 31875 31200 31200
2011-12-12 17:00:25 31093 31245 30310 30310
2011-12-13 17:00:24 30333 30767 30100 30430
2011-12-14 17:00:12 30210 30500 29575 29700
2011-12-19 17:00:03 29900 30005 29633 29679
my.AGL.roc <- ROC(my.sample1[,4])
my.AGL.sd <- apply.rolling(my.AGL.roc, FUN="sd", width=5)*sqrt(252)
my.AGL.sd
calcs
2011-12-05 17:00:28 NA
2011-12-06 17:00:22 NA
2011-12-07 17:00:12 NA
2011-12-08 17:00:09 NA
2011-12-12 17:00:25 0.2195421
2011-12-13 17:00:24 0.1966806
2011-12-14 17:00:12 0.2240305
2011-12-19 17:00:03 0.2327860
2011-12-20 17:00:28 0.2878848
2011-12-21 17:00:18 0.2275700
2011-12-22 17:00:12 0.2462184
2011-12-28 17:00:00 0.1633643
2011-12-29 17:00:20 0.1800739
2012-01-03 17:00:25 0.4068977
2012-01-04 17:00:13 0.3699694
2012-01-05 17:00:04 0.4014607
2012-01-09 17:00:05 0.4049482
2012-01-10 17:00:17 0.3934479
2012-01-11 17:00:07 0.2391906
2012-01-12 17:00:01 0.2328756
2012-01-16 17:00:02 0.2165803
2012-01-17 17:00:22 0.1910748
2012-01-18 17:00:19 0.1347729
2012-01-19 17:00:09 0.1198476
merged <- merge(AGL.xts,my.AGL.sd)
merged <- na.locf(merged)
merged
Close Calcs
2012-01-12 12:03:49 31920 0.2391906
2012-01-12 12:03:52 31920 0.2391906
2012-01-12 12:03:54 31920 0.2391906
2012-01-12 12:03:56 31941 0.2391906
2012-01-12 12:04:19 31910 0.2391906
2012-01-12 12:04:21 31910 0.2391906
2012-01-12 12:04:22 31909 0.2391906
2012-01-12 12:04:22 31903 0.2391906
2012-01-12 12:04:22 31910 0.2391906
2012-01-12 12:04:23 31910 0.2391906
2012-01-12 12:04:28 31910 0.2391906
2012-01-12 12:04:28 31910 0.2391906
2012-01-12 12:04:32 31910 0.2391906
2012-01-12 12:04:32 31910 0.2391906
2012-01-12 12:04:33 31909 0.2391906
2012-01-12 12:04:33 31910 0.2391906
2012-01-12 12:04:33 31910 0.2391906
2012-01-12 12:04:33 31910 0.2391906
2012-01-12 12:04:33 31910 0.2391906
2012-01-12 12:04:38 31901 0.2391906
这实现了我使用每日指标(在这种情况下为5天)并将其应用于滴答以进行分析的目标。谢谢你的建议。
答案 0 :(得分:3)
R Cookbook中的项目14.5和14.6演示了将月度通胀数据与每日IBM数据合并,使用merge
(all=T
或all=F
取决于目的),na.locf
和zoo
seq
生成一整套日期(涵盖一个或另一个符号没有数据的日期)。
我已经使用相同的方法在没有刻度的情况下创建空白的1米条,所以我认为它也可用于合并每日和刻度数据。
答案 1 :(得分:0)
不确定函数apply.rolling
的来源,但它看起来像是一个滚动的标准偏差,滞后为5?
嗯,你看起来很像。由于apply.rolling
的实现细节,计算中的前五行没有值。
但是我同意约书亚......不确定你到底想要做什么......