【问题标题】:R XTS package to.minutes – Unable to create 15m and 30m time series from 5m correctlyR XTS package to.minutes – 无法从 5m 正确创建 15m 和 30m 时间序列
【发布时间】:2014-07-30 20:40:43
【问题描述】:

我正在尝试使用 R XTS 包 to.minutes 从 5m 创建 15m 和 30m 时间序列。我有一个 xts 对象,它是日期时间,后跟 OHLC。关于 xts 对象 x 的信息如下:

head(x) 显示如下:

                   High    Low   Open  Close Volume

2010-05-03 09:00:00 106.08 105.95 106.06 106.00 1055 2010-05-03 09:05:00 106.03 105.75 106.00 105.77 4369 2010-05-03 09:10:00 105.77 105.59 105.77 105.68 4125 2010-05-03 09:15:00 105.84 105.66 105.69 105.80 2457 2010-05-03 09:20:00 105.89 105.71 105.80 105.83 1788 2010-05-03 09:25:00 105.89 105.78 105.84 105.78 977

str(x) 显示如下:

> str(x)

‘zoo’ series from 2010-05-03 09:00:00 to 2013-06-10 14:30:00 Data: num [1:222473, 1:5] 106 106 106 106 106 ... - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:5] "High" "Low" "Open" "Close" ... Index: POSIXct[1:222473], format: "2010-05-03 09:00:00" "2010-05-03 09:05:00" "2010-05-03 09:10:00" ...

str(head(index(x))) 显示如下:

head(str(index(x)))

POSIXct[1:222473], format: "2010-05-03 09:00:00" "2010-05-03 09:05:00" "2010-05-03 09:10:00" ... NULL

当我将时间序列转换为 15m 时,该序列从 09:10:00 开始,然后以 15 分钟为增量,而不是从 09:15:00 开始,然后以 15 分钟为增量

> head(to.minutes(x, k=15))

                  x.Open x.High  x.Low x.Close x.Volume

2010-05-03 09:10:00 106.08 105.95 105.77 105.68 9549 2010-05-03 09:25:00 105.84 105.78 105.69 105.78 5222 2010-05-03 09:40:00 105.80 105.92 105.62 106.12 9727 2010-05-03 09:55:00 106.17 106.00 106.01 106.22 6320 2010-05-03 10:10:00 106.26 106.07 106.15 106.14 8422 2010-05-03 10:25:00 106.57 106.38 106.15 106.37 10422

当我将时间序列转换为 30m 时出现同样的问题,该序列从 09:25:00 开始,然后以 30 分钟为增量,而不是从 09:30:00 开始,然后以 30 分钟为增量

> head(to.minutes(x, k=30))
                  x.Open x.High  x.Low x.Close x.Volume

2010-05-03 09:25:00 106.08 105.95 105.69 105.78 14771 2010-05-03 09:55:00 105.80 106.00 105.62 106.22 16047 2010-05-03 10:25:00 106.26 106.38 106.15 106.37 18844 2010-05-03 10:55:00 106.37 106.27 106.01 106.00 17193 2010-05-03 11:25:00 106.04 106.20 105.95 106.29 9075 2010-05-03 11:55:00 106.34 106.35 106.24 106.39 8517

我也尝试过使用 1 分钟的数据,但遇到了同样的问题。关于可能导致此问题的原因以及如何解决的任何想法?谢谢

【问题讨论】:

    标签: r xts


    【解决方案1】:

    这在?to.minutes 帮助页面上有非常清楚的描述。默认情况下,组从数据末尾开始并向后工作,因此不一定要注意第一个值是什么。但是,您可以将indexAt= 参数显式设置为"startof"。例如

    x <- zoo(runif(25), order.by=seq(as.POSIXct("2010-05-03 09:00:00"), 
        as.POSIXct("2010-05-03 11:00:00"), by="5 min"))
    
    to.minutes15(x)
    
    #                         x.Open    x.High      x.Low    x.Close
    # 2010-05-03 09:10:00 0.35570172 0.3557017 0.04524480 0.04524480
    # 2010-05-03 09:25:00 0.78939084 0.7893908 0.44032175 0.44032175
    # 2010-05-03 09:40:00 0.05272398 0.5381755 0.05272398 0.53817548
    # 2010-05-03 09:55:00 0.02198503 0.1113298 0.02198503 0.11132980
    # 2010-05-03 10:10:00 0.78785210 0.8804505 0.04152860 0.04152860
    # 2010-05-03 10:25:00 0.79317091 0.9497044 0.54751546 0.94970444
    # 2010-05-03 10:40:00 0.03886176 0.7425681 0.03886176 0.06614893
    # 2010-05-03 10:55:00 0.58684500 0.5868450 0.02794687 0.14291696
    # 2010-05-03 11:00:00 0.11713868 0.1171387 0.11713868 0.11713868
    

    to.minutes15(x, indexAt="startof")
    
    #                         x.Open    x.High      x.Low    x.Close
    # 2010-05-03 09:00:00 0.35570172 0.3557017 0.04524480 0.04524480
    # 2010-05-03 09:15:00 0.78939084 0.7893908 0.44032175 0.44032175
    # 2010-05-03 09:30:00 0.05272398 0.5381755 0.05272398 0.53817548
    # 2010-05-03 09:45:00 0.02198503 0.1113298 0.02198503 0.11132980
    # 2010-05-03 10:00:00 0.78785210 0.8804505 0.04152860 0.04152860
    # 2010-05-03 10:15:00 0.79317091 0.9497044 0.54751546 0.94970444
    # 2010-05-03 10:30:00 0.03886176 0.7425681 0.03886176 0.06614893
    # 2010-05-03 10:45:00 0.58684500 0.5868450 0.02794687 0.14291696
    # 2010-05-03 11:00:00 0.11713868 0.1171387 0.11713868 0.11713868
    

    【讨论】:

      猜你喜欢
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 1970-01-01
      • 2018-01-03
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多