我需要使用R中的quantmod软件包评估NYSE,AMEX,NASDAQ的拆分后股票表现。我的问题是我只能查找特定的符号(getSymbols()),但是我需要将数据分为非拆分公司和拆分公司,以进行比较。有谁知道我最近25年该怎么做?
谢谢
答案 0 :(得分:1)
由于使用的是quantmod
软件包,因此可以使用getSplits()函数来确定某股票在特定时间范围内已进行的拆分。由于您要处理大量股票,因此可以使用自定义功能获取所需的股票。
getSymbolSplit <- function(symbol,xts,date) {
splitCheck <- getSplits(symbol,from = date)
if(anyNA(splitCheck, recursive = FALSE)){
xts$Split <- 0
} else {
xts$Split <- 1
}
return(xts)
}
一旦有了该功能,便可以快速将拆分添加到现有库存数据中。示例:
getSymbols('GOOG')
GOOG <- getSymbolSplit('GOOG',GOOG,'1993-01-01')
getSymbols()函数创建名为GOOG的xts,因此我们的函数检查自1993年1月1日以来是否发生任何拆分(是),并添加值为{1的列Split
。
getSymbols('REGN')
REGN <- getSymbolSplit('REGN',REGN,'1993-01-01')
交易相同,但REGN自1993年以来未进行过拆分,列的值为0。
现在,您有了一个明确的二进制变量,可以在给定时间范围内进行了拆分的公司之间进行分组。
作为警告,我遇到了BRK-A问题。 R通常不允许包含“-”的名称,并且在尝试传递名为BRK-A的xts时,该功能会中断。如果您的股票代码中使用-,我建议您在使用它们之前重命名它们。破折号不是唯一可能导致问题的地方。