我可以将每日系列转换为每周一次,如下所示:
library(quantmod)
getSymbols("SPY", from="2013-01-01", to=Sys.Date())
chartSeries(SPY)
datW <- to.weekly( SPY)
但是这个系列会在周五创建一个关闭的每周酒吧。 如何更改此项以创建周中栏,以便每周栏显示周三的收盘?
感谢您的帮助。
答案 0 :(得分: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数据。