这是您要寻找的吗(仅使用 12 分钟的数据,因为这就是您发布的全部内容)?
x <- read.table(text ="
2013-01-16 00:01:00 93.55 93.60 93.54 93.58 5
2013-01-16 00:02:00 93.59 93.60 93.58 93.58 5
2013-01-16 00:03:00 93.59 93.60 93.58 93.58 5
2013-01-16 00:04:00 93.58 93.58 93.57 93.57 12
2013-01-16 00:05:00 93.57 93.57 93.55 93.70 21
2013-01-16 00:06:00 93.56 93.56 93.56 93.56 5
2013-01-16 00:07:00 93.56 93.56 93.55 93.55 3
2013-01-16 00:08:00 93.55 93.55 93.55 93.55 2
2013-01-16 00:09:00 93.55 93.56 93.55 93.56 2
2013-01-16 00:10:00 93.56 93.56 93.56 93.56 1
2013-01-16 00:11:00 93.57 93.57 93.57 93.57 3")
colnames(x) <- c("Date", "time", "Open", "High", "Low", "Close", "Volume")
xt <- xts(x[, 3:7], order.by = as.POSIXct(paste0(x$Date, x$time, " ")) - 0.000001)
xt5 <- to.period(xt, period = "minutes", k =5)
xt5 <- align.time(xt5, n = 300)
xt5
# xt.Open xt.High xt.Low xt.Close xt.Volume
# 2013-01-16 00:05:00 93.55 93.60 93.54 93.70 48
# 2013-01-16 00:10:00 93.56 93.56 93.55 93.56 13
# 2013-01-16 00:15:00 93.57 93.57 93.57 93.57 3
将带有标记“2013-01-16 00:05:00”的条形图包含在包含间隔 ["2013-01-16 00:00:00", "2013-01-16 00:04" 的 5 分钟条形图中:59.99999"],你可以将基础时间减少一点点(一个稍微负的量,这里说-0.000001
),以便将其包含在前 5 分钟间隔中。
我认为,如果您决定说明 OHLC 条形数据上的时间戳是位于条形的开头还是条形的末尾,则可以避免您评论中的混乱。即“2013-01-16 00:01:00”是否表示间隔的 OHLC (2013-01-16 00:00:00 到 2013-01-16 00:00:59.999) 或 (2013-01-16 00:01:00, 2013-01-16 00:01:59.999)。就您而言,它位于栏的末尾(前一种情况)。
将时间戳作为 OHLC 数据条形的开始并不是一个好主意,因为当您将不同条形间隔上的 xts 对象合并在一起时,它会引入前向偏差。