我经常使用to.daily将1分钟OHLC数据转换为每日格式,但我正试图找到一种方法来对夜间数据做同样的事情。我希望看到选项指定“日”开始和结束的时间,但没有看到。
隔夜会议时间为18:00至09:30。
有没有人有一个简单的方法来做到这一点?
答案 0 :(得分:3)
您可以使用which.i = TRUE
的时间子集来查找您不想要的所有观察结果。然后使用结果的负数对原始数据进行子集化,这样就可以删除所有非过夜观察值。
# assume data are in a xts object named 'x'
DayObs <- x["T09:30/T18:30", which.i = TRUE]
Overnight <- x[-DayObs,]
您可能需要更改时间子集调用中的开始和结束时间。
如果您已经拥有数据子集以便它只包含隔夜会话,那么您可以聚合到&#34;每天&#34;使用period.apply()
和自定义端点。假设您的数据位于名为x
的对象中:
ep <- c(0, which(diff(.indexhour(x) > 9 & .indexmin(x) > 30) == 1))
makeOHLC <- function(x) {
op <- as.numeric(first(x))
cl <- as.numeric(last(x))
c(Open = op, High = max(x), Low = min(x), Close = cl)
}
period.apply(x, ep, makeOHLC)