R de fusion de données quotidiennes avec les données de tiques
Question
Merci pour le pointeur de na.(rado) (Darren), mise à jour de l'exemple et les résultats ci-dessous:
J'ai les données de tiques, que j'ai roulé en données quotidiennes, afin de calc quotidien de la volatilité.Maintenant que j'ai créé le quotidien de la volatilité, je voudrais fusionner les données quotidiennes avec la tique à nouveau les données.Je soupçonne cependant, la fusion reste "vide" en raison de l'indice de différences du quotidien et les données de tiques.
Comment pourrait-on fusionner les données quotidiennes avec les données de tiques?
Exemple:
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
Cela permet d'atteindre mon objectif de l'utilisation d'un indicateur quotidien (5 jours de vol dans ce cas) et en l'appliquant à des tiques à des fins d'analyse.Merci pour les conseils.
La solution
Articles 14.5 et 14.6 dans la R livre de cuisine de démontrer la fusion de l'inflation mensuelle de données quotidiennement données d'IBM, à l'aide de merge
(avec all=T
ou all=F
en fonction de l'objet), na.locf
et zoo
avec seq
pour générer un ensemble de dates (les dates lorsque l'un ou l'autre symbole n'a pas de données).J'ai utilisé la même approche pour créer vierge 1m de bars pour les minutes où il n'y avait pas de tiques, donc je pense qu'il va travailler pour la fusion des quotidiennes et des données tiques trop.
Autres conseils
vous ne savez pas où la fonction apply.rolling
vient, mais il ressemble à son un rouleau de déviation standard avec un décalage de 5?
Bien, vous avez que ça ressemble.Il n'existe pas de valeurs pour les cinq premières lignes dans les cvac en raison de la mise en œuvre de apply.rolling
.
Mais je serai d'accord avec Joshua...vous ne savez pas exactement ce que vous essayez de faire ici...