Используя данные (FANG), скажем, я знаю, что есть сглаженная связь между объемом и ценой открытия. Также я знаю, что длина наиболее прогнозируемого скользящего среднего значения зависит от запаса. Для некоторых это короткий, день 2 дня. Для других 10. Я хотел бы создать несколько скользящих средств продолжительностью от 2 до 10 дней для каждого запаса.
Пока что я попробовал пакет tibbletime и получил старт, чтобы я мог рассчитать несколько скользящих средних для одного.
library(tibbletime)
library(tidyverse)
data("FANG")
FB <- FANG %>% filter(symbol == “FB”)
meanstep <- seq(2, 10, 1)
col_names <- map_chr(meanstep, ~paste0("rollmean_", .x))
rollers <- map(meanstep, ~rollify(mean, window = .x)) %>% set_names(nm = col_names)
FB_multiroll<- bind_cols(FB, invoke_map(rollers, x = FB$volume))
Однако я не могу понять, как заставить это работать при группировании по нескольким акциям.
Я попытался добавить:
FANG_with_multiroll<- FANG %>% group_by(symbol) %>% bind_cols(FANG, invoke_map(rollers, x =FANG$volume)
Но это не сработало. Он создал подвижные средства, но не группой. Вместо этого он просто берет весь фрейм данных независимо от «символа». Любые идеи были бы хорошы. После того, как я заставлю его работать, я планирую найти самую высокую корреляцию или rsquared для каждого символа. Если у вас есть идеи о лучших способах сделать это, мне будет интересно.