我可以将每日系列转换为每周,如下所示:
library(quantmod)
getSymbols("SPY", from="2013-01-01", to=Sys.Date())
chartSeries(SPY)
datW <- to.weekly( SPY)
但该系列创建了在周五收盘的每周柱。如何更改此设置以创建周中柱,以便每周柱在星期三显示收盘价?
感谢您的帮助。
看起来没有任何简单的方法可以做到这一点。如果您查看它的源代码,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 数据。