这与从雅虎财经获得的股票数据有关。
我正在寻找一种方法来确定股票被拆分的日期(或发行红利股,这种区别对当前任务来说并不重要)。
我找不到这个问题的具体答案。这是我能想到的最好的:
require(quantmod)
AAPL<- getSymbols("AAPL", from="1987-01-01",to="2016-08-01", auto.assign = F)
# head(AAPL)
# tail(AAPL)
# assuming a minimum split of 10:11
probableSplits<- which( Delt(Cl(AAPL)/Ad(AAPL)) <= -0.1)
probableSplitDates<- index(AAPL)[probableSplits]
x<- AAPL[c(probableSplits, ((probableSplits)-1))]
x$tmpratio<- Cl(x)/Ad(x)
x$splitRatio<- round(1/(1+Delt(x$tmpratio)))
#Added Following 1 line for very old stocks with adjusted price in low decimals
probableSplitDates<- index(x[x$splitRatio>1,])
x$splitRatio[probableSplitDates]
chartSeries(AAPL["2014-06"],theme = chartTheme('white'))
我想知道此解决方案可能遇到的问题。
即使我在这里使用Apple,我也在寻找印度交易所的数据(例如,RELIANCE.NS),因此一些美国特定的交叉引用来源对我不起作用。
编辑:在非常低的小数值中为旧的调整后的价格添加了一行代码
答案 0 :(得分:1)
您可以使用Yahoo Finance提供的拆分/股息数据。
require(quantmod)
getSplits("RELIANCE.NS")
# RELIANCE.NS.spl
# 1997-10-27 0.5
# 2009-11-26 0.5
您也可以使用adjustOHLC
为您进行调整。
getSymbols("RELIANCE.NS")
RELIANCE.NS.ADJ <- adjustOHLC(RELIANCE.NS)