1

我可以将每日系列转换为每周,如下所示:

library(quantmod)
getSymbols("SPY", from="2013-01-01", to=Sys.Date())
chartSeries(SPY)
datW <- to.weekly( SPY)

但该系列创建了在周五收盘的每周柱。如何更改此设置以创建周中柱,以便每周柱在星期三显示收盘价?

感谢您的帮助。

4

1 回答 1

1

看起来没有任何简单的方法可以做到这一点。如果您查看它的源代码,to.period它基本上围绕着.toPeriod它传递 的外部调用endpoints(x, period, k)

    xx <- .Call("toPeriod", x, endpoints(x, period, k), has.Vo(x), 
        has.Vo(x, which = TRUE), has.Ad(x) && is.OHLC(x), 
        index_at, cnames, PACKAGE = "xts")

endpoints功能也可以通过外部调用工作。因此,如果您每周的周期在周三结束,看起来您要么必须自己编写代码,要么寻找一些不同的库。

作为起点,很容易找到发生在星期三的数据行,如下所示:

> wednesdayRows<-which(as.POSIXlt(index(SPY))$wday==3)
> head(SPY[wednesdayRows,])
           SPY.Open SPY.High SPY.Low SPY.Close SPY.Volume SPY.Adjusted
2013-01-02   145.11   146.15  144.73    146.06  192059000       143.95
2013-01-09   145.87   146.32  145.64    145.92   90745600       143.81
2013-01-16   146.77   147.28  146.61    147.05  104849500       144.92
2013-01-23   149.13   149.50  148.86    149.37  104596100       147.21
2013-01-30   150.64   150.94  149.93    150.07  137447700       147.90
2013-02-06   150.52   151.26  150.41    151.16  138762800       148.97

所以现在您只需要正确聚合 OHLC 数据。

于 2013-10-11T21:42:39.957 回答