Проблемы со знаком «^» в ^ GSPC в Quantstrat - PullRequest
0 голосов
/ 09 декабря 2018

Чтобы получить данные о ценах на акции, я сделал следующее:

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 и т. Д.).Я полагаю, что проблема заключается в пропущенном «^» в GSPC в глобальной среде после запуска функции getSymbols.

Это инициализация моего портфолио:

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

Поскольку символы вызывают тикеры, которые содержат «^ GSPC» и что доступен только «GSPC», я считаю, что этопричина, по которой возникла ошибка: «^ GSPC» не найден.

Есть ли эффективный способ обойти это?Спасибо за ваше время.

1 Ответ

0 голосов
/ 13 декабря 2018

Одним из решений является очистка вашего tickers от не алфавитно-цифровых символов с использованием функции str_replace_all из библиотеки stringr перед передачей его в quantstrat в качестве аргумента symbols.

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

Если вы хотите избавиться только от карет:

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

Другой вариант - использовать gsub для удаления нежелательных символов.

...