2011-09-01 4 views
3

J'essaie de tester la réversion sur les trades intra-journaliers sur le VWAP intérimaire. J'ai compilé un exemple (espérons-le) reproductible pour montrer ce que j'ai fait. Actuellement j'utilise rollapply, mais cela applique le calcul VWAP sur une fenêtre roulante basée sur des observations. Idéalement, j'aimerais utiliser des fenêtres temporelles roulantes, disons 10 minutes.Application de fonctions de roulement basées sur le temps (intraday)

Mon exemple (à partir des données de tiques):

library(quantmod) 
library(xts) 

#Create xts object from tick data frame 

my.xts <- xts(my.frame[,-1], order.by=my.frame[,1]) 
my.xts <- my.xts["T10:00/T10:30"] 


> my.xts 
        PRICE QUANTITY 
2011-08-31 10:00:14 28724  538 
2011-08-31 10:00:22 28724  462 
2011-08-31 10:00:22 28724  500 
2011-08-31 10:00:47 28701  500 
2011-08-31 10:01:10 28725  500 
2011-08-31 10:01:18 28728  1000 
2011-08-31 10:01:30 28702  500 
2011-08-31 10:01:30 28701  500 
2011-08-31 10:01:45 28701  2590 
2011-08-31 10:01:45 28701  1275 
2011-08-31 10:01:46 28701  635 
2011-08-31 10:01:53 28697  821 
2011-08-31 10:02:02 28700  3379 
2011-08-31 10:02:02 28700  1621 
2011-08-31 10:03:26 28709  1000 
2011-08-31 10:03:38 28709  1000 
2011-08-31 10:03:38 28709  997 
2011-08-31 10:04:37 28699  500 
2011-08-31 10:04:37 28700  2500 
2011-08-31 10:04:50 28676  500 
2011-08-31 10:05:01 28676  519 
2011-08-31 10:05:01 28676  500 
2011-08-31 10:05:03 28700  2500 
2011-08-31 10:05:03 28700  2000 
2011-08-31 10:05:42 28681  197 
2011-08-31 10:06:22 28699  2535 
2011-08-31 10:06:22 28700  1000 
2011-08-31 10:06:22 28700  2500 
2011-08-31 10:06:22 28700  2060 
2011-08-31 10:06:31 28700  2500 
2011-08-31 10:06:32 28700  2500 
2011-08-31 10:06:33 28700  2500 
2011-08-31 10:06:42 28700  1000 
2011-08-31 10:06:42 28700  500 
2011-08-31 10:06:43 28700  500 
2011-08-31 10:06:58 28700  1000 
2011-08-31 10:07:02 28700  1000 
2011-08-31 10:07:04 28700  1000 
2011-08-31 10:07:04 28700  1000 
2011-08-31 10:07:05 28700  1000 
2011-08-31 10:07:05 28700  90 
2011-08-31 10:07:05 28700  910 
2011-08-31 10:07:06 28700  90 
2011-08-31 10:07:29 28700  8 
2011-08-31 10:07:40 28700  3 
2011-08-31 10:07:44 28681  590 
2011-08-31 10:07:46 28680  1000 
2011-08-31 10:07:47 28676  1167 
2011-08-31 10:07:56 28699  350 
2011-08-31 10:08:01 28675  1000 
2011-08-31 10:08:14 28694  240 
2011-08-31 10:08:14 28694  518 
2011-08-31 10:08:15 28675  861 
2011-08-31 10:08:15 28663  657 
2011-08-31 10:09:20 28689  1000 
2011-08-31 10:09:59 28696  500 
2011-08-31 10:10:10 28694  100 
2011-08-31 10:10:51 28698  1000 
2011-08-31 10:10:51 28698  1000 
2011-08-31 10:11:02 28700  374 
2011-08-31 10:11:15 28701  500 
2011-08-31 10:11:52 28724  500 
2011-08-31 10:11:52 28725  900 
2011-08-31 10:11:52 28728  1000 
2011-08-31 10:11:52 28740  2500 
2011-08-31 10:11:52 28740  300 
2011-08-31 10:11:52 28749  1800 
2011-08-31 10:11:52 28750  250 
2011-08-31 10:11:52 28750  200 
2011-08-31 10:11:52 28750  6497 
2011-08-31 10:11:52 28750  2103 
2011-08-31 10:12:02 28750  8950 
2011-08-31 10:12:07 28750  4500 
2011-08-31 10:12:50 28750  4450 
2011-08-31 10:12:50 28750  550 
2011-08-31 10:12:56 28750  478 
2011-08-31 10:12:56 28750  522 
2011-08-31 10:12:56 28750  492 
2011-08-31 10:13:02 28750  61 
2011-08-31 10:13:16 28750  4439 
2011-08-31 10:13:44 28750  1000 
2011-08-31 10:13:47 28750  1000 
2011-08-31 10:13:48 28750  1000 
2011-08-31 10:13:49 28750  1000 
2011-08-31 10:13:49 28750  439 
2011-08-31 10:14:25 28750  2061 
2011-08-31 10:14:25 28750  1000 
2011-08-31 10:14:26 28751  374 
2011-08-31 10:14:46 28750  500 
2011-08-31 10:15:31 28750  1000 
2011-08-31 10:15:49 28775  1 
2011-08-31 10:15:52 28775  454 
2011-08-31 10:16:47 28752  1000 
2011-08-31 10:17:00 28750  1069 
2011-08-31 10:17:30 28750  500 
2011-08-31 10:17:38 28744  821 
2011-08-31 10:17:42 28744  179 
2011-08-31 10:17:42 28776  1000 
2011-08-31 10:17:44 28779  590 
2011-08-31 10:17:46 28780  700 
2011-08-31 10:17:46 28780  3000 
2011-08-31 10:18:06 28754  590 
2011-08-31 10:18:06 28753  700 
2011-08-31 10:18:06 28751  500 
2011-08-31 10:18:06 28751  10 
2011-08-31 10:18:06 28751  990 
2011-08-31 10:18:39 28750  1000 
2011-08-31 10:18:39 28750  2000 
2011-08-31 10:19:11 28748  1000 
2011-08-31 10:19:13 28749  1077 
2011-08-31 10:19:22 28750  500 
2011-08-31 10:19:45 28768  600 
2011-08-31 10:19:45 28768  2244 
2011-08-31 10:19:58 28750  500 
2011-08-31 10:19:58 28750  500 
2011-08-31 10:19:58 28750  97 
2011-08-31 10:19:58 28750  403 
2011-08-31 10:19:58 28750  197 
2011-08-31 10:20:06 28750  10 
2011-08-31 10:20:18 28750  293 
2011-08-31 10:20:18 28750  500 
2011-08-31 10:20:19 28750  500 
2011-08-31 10:20:19 28750  500 
2011-08-31 10:20:19 28750  207 
2011-08-31 10:20:51 28750  293 
2011-08-31 10:21:04 28730  3000 
2011-08-31 10:21:09 28725  1000 
2011-08-31 10:21:09 28725  1029 
2011-08-31 10:21:10 28720  500 
2011-08-31 10:21:35 28700  525 
2011-08-31 10:21:35 28700  475 
2011-08-31 10:21:38 28725  50 
2011-08-31 10:21:38 28745  350 
2011-08-31 10:22:40 28713  350 
2011-08-31 10:22:58 28700  327 
2011-08-31 10:22:58 28700  373 
2011-08-31 10:23:09 28720  2029 
2011-08-31 10:23:18 28720  50 
2011-08-31 10:23:26 28720  150 
2011-08-31 10:23:38 28700  50 
2011-08-31 10:23:54 28700  762 
2011-08-31 10:23:54 28700  38 
2011-08-31 10:23:57 28700  112 
2011-08-31 10:23:57 28700  2500 
2011-08-31 10:24:00 28700  3388 
2011-08-31 10:24:11 28700  1534 
2011-08-31 10:24:11 28700  3466 
2011-08-31 10:24:11 28700  1706 
2011-08-31 10:24:14 28700  794 
2011-08-31 10:24:26 28700  2288 
2011-08-31 10:24:40 28719  2000 
2011-08-31 10:24:48 28703  15 
2011-08-31 10:24:50 28737  1000 
2011-08-31 10:24:50 28737  30 
2011-08-31 10:25:35 28731  1077 
2011-08-31 10:25:38 28735  200 
2011-08-31 10:25:38 28737  2232 
2011-08-31 10:25:50 28737  100 
2011-08-31 10:25:54 28737  1288 
2011-08-31 10:25:57 28725  829 
2011-08-31 10:26:07 28710  1000 
2011-08-31 10:26:16 28700 10000 
2011-08-31 10:26:36 28701  485 
2011-08-31 10:26:36 28700  1947 
2011-08-31 10:26:44 28701  1068 
2011-08-31 10:26:44 28700  1432 
2011-08-31 10:26:45 28700  4121 
2011-08-31 10:26:45 28700  1566 
2011-08-31 10:26:45 28700  794 
2011-08-31 10:26:45 28700  2524 
2011-08-31 10:26:45 28700  991 
2011-08-31 10:26:45 28700  2244 
2011-08-31 10:26:53 28680  250 
2011-08-31 10:26:58 28680  750 
2011-08-31 10:27:09 28676  200 
2011-08-31 10:27:19 28700  500 
2011-08-31 10:27:19 28700  1500 
2011-08-31 10:27:32 28675  300 
2011-08-31 10:27:42 28699  1000 
2011-08-31 10:27:42 28700  30 
2011-08-31 10:27:53 28675  700 
2011-08-31 10:28:03 28657  6 
2011-08-31 10:28:15 28698  500 
2011-08-31 10:28:15 28699  530 
2011-08-31 10:30:34 28699  470 
2011-08-31 10:30:34 28700  1854 
2011-08-31 10:30:34 28700  1000 
2011-08-31 10:30:34 28700  500 
2011-08-31 10:30:35 28700  191 
2011-08-31 10:30:40 28699  150 
2011-08-31 10:30:41 28700  1663 
2011-08-31 10:30:48 28700  1030 
2011-08-31 10:30:51 28700  824 
2011-08-31 10:30:57 28700  843 


##################################### 
#  Create VWAP data  # 
##################################### 

func.vwap <- function(my.data) 
{ 
    vwap <- sum(my.data[,1]*my.data[,2])/sum(my.data[,2]) 
} 

my.DayVWAP <- func.vwap(my.xts) 

my.test <- rollapply(my.xts,20,func.vwap, by.column=FALSE) 

Ajouté by.column = FALSE selon la recommandation de James pour corriger l'erreur dans rollapply.

S'il vous plaît dites-moi si je ne donne pas assez d'informations.

Merci à l'avance Ed

+0

Comment voulez-vous remplir les données manquantes entre les pas de temps? –

Répondre

2

Ajouter l'argument by.column=FALSE à votre déclaration rollapply:

my.test <- rollapply(my.xts,20,func.vwap,by.column=FALSE) 
+0

merci James, ça corrige l'erreur que je voyais. Mon seul bit remarquable est de changer le rollapply pour regarder les fenêtres basées sur le temps de déplacement au lieu de rouler des fenêtres basées par observation. –

+0

L'argument 'partial' semble pouvoir le faire, mais je ne peux pas m'entraîner à partir de la documentation exactement comment cela fonctionne. – James

+0

mmm, txs. Peut-être que l'un des auteurs de rollapply jettera un coup d'oeil à ceci si nous sommes chanceux –

Questions connexes