Quantmod:从雅虎 EOD 价格数据中提取分割日期

Quantmod: extracting split dates from yahoo EOD price data

这与从雅虎财经获得的股票数据有关。

我正在寻找一种方法来确定拆分股票(或发行红股,区别对当前任务无关紧要)的日期。

我找不到这个问题的具体答案。这是我能想到的最好的:

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),因此某些用于交叉引用的美国特定来源对我不起作用。

编辑:在非常低的十进制值中为旧调整价格添加了一行代码

您可以使用雅虎财经提供的 split/dividend 数据。

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)