我正在尝试从quantmod包中获取函数getSymbols和adjustOHLC以从finance.yahoo.com检索数据并通过拆分和分红进行调整。不幸的是,它并没有始终如一地发挥作用。我没有尝试通过Adj-column进行调整,因为这会导致精度损失(来自?adjustOHLC的帮助)。
library(quantmod)
symbols <- c("ADP", "GE", "KBH", "MO", "MMM", "MSFT")
from <- "2000-01-01"
to <- "2013-12-31"
# retrieve data and plot unadjusted close price
par (mfrow=c(2,3))
for (i in 1:length(symbols)) {
getSymbols(symbols[i], from=from, auto.assign=TRUE)
plot(Cl(get(symbols[i])), main=symbols[i], type="p", pch=20)
}
# adjust for splits and dividends
for (i in 1:length(symbols)) {
assign (symbols[i], adjustOHLC(get(symbols[i]),
adjust=c("split", "dividend"),
use.Adjusted=FALSE,
symbol.name=symbols[i]))
}
# plot adjusted series
for (i in 1:length(symbols)) {
plot(Cl(get(symbols[i])), main=paste0(symbols[i],".adjusted"), type="p", pch=20)
}
调整之前的调整OHLC 后的
有趣的是,尽管ADP(2007-04-02 4.5625)存在分歧,但时间序列似乎首先进行了调整。像GE这样的其他分裂根本没有调整。股息调整似乎正常。
我在Ubuntu上使用带有R 3.1.0的quantmod_0.4-0。
任何人都可以提出更强大的解决方案吗?