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
Comment voulez-vous remplir les données manquantes entre les pas de temps? –