Quantstrat中的^ GSPC中的“ ^”符号问题

时间:2018-12-09 07:11:49

标签: r quantmod quantstrat

要检索股票价格数据,请执行以下操作:

options("getSymbols.warning4.0" = FALSE)
tickers <- c("^GSPC","AAPL")
startDate = "1990-01-01"
from = "2006-01-01"
to = "2009-12-31"
getSymbols(tickers, from = from, to = to)

但是,当我尝试使用Quantstrat将策略应用于投资组合时,出现了错误:

> try(applyStrategy(strategy = strategy.st, portfolios = portfolio.st))
Error in get(symbol, envir = envir) : object '^GSPC' not found

使用其他股票代号(例如NVDA,IBM,ATVI等)运行时,我没有任何问题。我相信问题在于运行getSymbols函数后,GSPC在全局环境中缺少“ ^”。

这是我的投资组合的初始化:

initPortf(name = portfolio.st,
          symbols = tickers,
          initDate = startDate,
          currency = "USD")

由于符号正在调用代码,其中包含“ ^ GSPC”,并且只有“ GSPC”可用,所以我相信这就是错误浮出水面的原因,指出未找到“ ^ GSPC”。

有没有有效的方法来解决这个问题?谢谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

一种解决方案是使用tickers库中的str_replace_all函数清除stringr中的非字母数字字符,然后再将其作为symbols参数提供给quantstrat。

library(stringer)
str_replace_all(tickers, "[^[:alnum:]]", “")

如果您只想摆脱插入符号:

str_replace_all(tickers, "[['^']]", “”)

另一个选择是使用gsub删除不需要的字符。