【发布时间】:2015-08-15 00:45:46
【问题描述】:
您好,我正在将一些 1 分钟的数据转换为 5 分钟的数据,我发现它在第一次增量时执行了 4 分钟,然后在此之后继续执行 5 分钟增量。
我尝试过使用所有“indexAt”参数,但没有一个能满足我的需求,从 5 开始,然后是 10、15、20 等。
我试过了
x5 <- to.minutes5(x)
与
x <- to.period(x,
period = 'minutes',
k = 5,
OHLC = TRUE)
1 分钟数据
Open High Low Close Volume
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
转换为 5 分钟后
clemtest.Open clemtest.High clemtest.Low clemtest.Close clemtest.Volume
2013-01-16 00:04:00 93.55 93.60 93.54 93.57 27
2013-01-16 00:09:00 93.57 93.57 93.55 93.56 33
2013-01-16 00:14:00 93.56 93.57 93.56 93.57 8
2013-01-16 00:19:00 93.56 93.58 93.51 93.53 77
2013-01-16 00:24:00 93.53 93.55 93.49 93.49 121
2013-01-16 00:29:00 93.49 93.51 93.49 93.51 121
计算是正确的,它只是不是从前 5 分钟的数据开始,而是从 4 分钟开始,然后进入 5 分钟。
(使用 indexAt='startof' 给了我正确的 5、10、15... 但是在检查条形图时,5 分钟的数据代表 5 分钟的开始(例如,5 分钟 - 10 分钟)而不是 0 分钟 - 5)
这是1min数据的尾部,供参考。
Open High Low Close Volume
2013-01-17 23:53:00 95.52 95.52 95.52 95.52 2
2013-01-17 23:55:00 95.51 95.52 95.51 95.52 2
2013-01-17 23:56:00 95.51 95.51 95.51 95.51 1
2013-01-17 23:57:00 95.52 95.52 95.52 95.52 1
2013-01-17 23:59:00 95.52 95.52 95.51 95.51 4
2013-01-18 00:00:00 95.51 95.51 95.51 95.51 8
【问题讨论】:
-
to.period(因此to.minutes、to.minutes5等)使用每个间隔的endpoints来聚合数据。您的数据前 5 分钟的最后一次观察是在 00:04:00,这就是您所看到的。 00:05:00 是零小时内第二个 5 分钟间隔的开始。您能否详细说明您为什么要这样做? -
看看 library(highfrequency) 包,它们有一个名为 aggregatets() 的函数,这可能是您正在寻找的。 @user1736644
-
嗨 Joshua,我想要这个的原因是:我正在使用相同的策略处理多个时间框架、tick、5 分钟和 60 分钟。我希望第 12 个 5 分钟小节的结尾与 60 分钟小节相匹配。但如果我得到 4,9,14 条,它将不匹配。我希望第一个 5 分钟柱的收盘价等于第 5 个 1 分钟柱的收盘价,在这种情况下,第 5 个 1 分钟柱的收盘价是 93.70,因此我希望第一个 5 分钟柱的收盘价是 93.70时间戳为 00:05:00。 (如果我查看 00:00:00 - 00:04:59 的刻度数据,它从 93.55 开始,在 93.70 结束)。谢谢
-
另外,如果你注意到音量,一天的前 5 分钟是从 00:00:00 - 00:05:00 因此前 5 分钟的音量应该是 5+5+5 +12+21(48)
-
如果有帮助,我还将 1 分钟数据的尾部添加到原始问题中