要检索股票价格数据,请执行以下操作:
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”。
有没有有效的方法来解决这个问题?谢谢您的宝贵时间。
答案 0 :(得分:0)
一种解决方案是使用tickers
库中的str_replace_all
函数清除stringr
中的非字母数字字符,然后再将其作为symbols
参数提供给quantstrat。
library(stringer)
str_replace_all(tickers, "[^[:alnum:]]", “")
如果您只想摆脱插入符号:
str_replace_all(tickers, "[['^']]", “”)
另一个选择是使用gsub
删除不需要的字符。