Я строю базовую торговую стратегию с несколькими индикаторами. Моя проблема в том, что я хочу, чтобы он работал на нескольких акциях без необходимости указывать каждую отдельную акцию, которую я хочу протестировать.
В настоящее время я могу использовать вектор для одновременного получения нескольких символов, например, ниже
# Get Shares from Yahoo Finance
Stocks<- ASX_200_Companies_Copy$Code
getSymbols(Stocks, from = from, to = to, src = "yahoo", adjust = TRUE)
Я могу легко сгенерировать вектор со списком биржевых кодов в документе Excel. Так что это сгенерирует для меня 200 отдельных символов. После того, как я создам все свои индикаторы, я создам тестовую стратегию, как показано ниже, для отдельного актива.
# Test the strategy
test_Master <- applyIndicators(strategy.st.Master, mktdata = OHLC(BHP.AX))
Master_Strategy <- applySignals(strategy = strategy.st.Master, mktdata = test_Master)
В этом случае я смогу тестировать свою стратегию только по одному активу за раз, что, если я хочу найти тренды в больших наборах данных, будет неэффективным.
Указание Stocks в качестве аргумента для OHLC приводит к следующей ошибке
test_Master <- applyIndicators(strategy.st.Master, mktdata = OHLC(Stocks))
Error in Cl(mktdata) : subscript out of bounds: no column name containing "Close"
Я решил просто связать несколько отдельных акций, которые генерируются. Однако это тоже не работает.
Stocks <- cbind(BHP.AX, CBA.AX)
test_Master <- applyIndicators(strategy.st.Master, mktdata = OHLC(Stocks))
Error in runSum(x, n) : ncol(x) > 1. runSum only supports univariate 'x'
И даже если я успешно привяжу каждый символ, я думаю, что стратегия будет тестировать индикаторы на OHLC для каждого символа в векторе акций.
Можно ли как-то протестировать стратегию Quantstrat на нескольких активах одновременно?
Любые мысли/отзывы будут оценены.
quantstrat
иblotter
, но активно пользуюсь вашим пакетомPerformanceAnalytics
. Кроме того, ваш пакетPortfolioAnalytics
значительно упростил проблемы оптимизации, спасибо за создание и поддержку таких замечательных пакетов! - person Silence Dogood   schedule 10.05.2018