tq_mutate和越来越大的窗口宽度?

时间:2019-02-18 20:24:40

标签: r tidyquant

使用tq_mutate运行带有日内数据的滚动窗口lm模型。当我想要固定大小的滚动窗口时,功能可以完美使用。

如何运行保持固定的窗口,可以说在第一个数据点(美国东部标准时间上午9:30),然后开始增加窗口大小。示例:窗口宽度为720滴答宽度。每个滴答声发生在5秒,因此窗口是1小时。在刻度720之后,窗口增加到721、722等,直到当天结束。就像有一个预热期,然后扩大窗口以将其关闭。

tq_mutate是否支持这样的窗口。固定在开始日期时间(打开),在满足宽度时开始执行,并一直增长到数据结束。再次仅用于日内数据。

这在下面适用于固定宽度。

pair.ratio <- as.tibble(runif(4000, min = 1, max = 5) / runif(4000,min=1,max=5))

tq_mutate(data = pair.ratio,mutate_fun = rollapply, width = 720, align='right', FUN = regr_fun,col_rename="coefficient")

regr_fun <- function(data) {
coef(lm(data[,1] ~ 1))
}

1 个答案:

答案 0 :(得分:0)

您可以给width一个向量参数,该参数具有每个窗口的窗口大小:

    tq_mutate(data = pair.ratio,
              mutate_fun = rollapply, 
              width = seq(nrow(pair.ratio)), 
              align='right', 
              FUN = regr_fun,
              col_rename="coefficient")

pair.ratio我没有做一个有效的例子,我相信需要一个日期索引,但是您可以创建一个函数来生成您请求的向量,然后使用结果。