2017-02-03 3 views
1

Я строю основную торговую стратегию с несколькими индикаторами. Моя проблема в том, что я хочу, чтобы она работала на нескольких акциях без указания каждого отдельного капитала, который я хочу проверить.R - Quantstart: стратегия тестирования на нескольких акциях

В настоящее время я нахожусь в состоянии использовать вектор, чтобы получить несколько символов сразу, например, как показано ниже

# 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) 

В этом случае я бы только быть в состоянии проверить свою стратегию одного актива в то время, что, если я хочу найти тенденции в больших наборах данных не будут эффективными.

Определение запасов в качестве аргумента для OHLC производит следующую ошибку

test_Master <- applyIndicators(strategy.st.Master, mktdata = OHLC(Stocks)) 
Error in Cl(mktdata) : subscript out of bounds: no column name containing "Close" 

Я думал, что просто cbind несколько отдельных акций, которые генерируют. Однако это тоже не работает.

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' 

И даже если я действительно успешно cbind каждый символ, я представить себе стратегию тестирование индикаторов на OHLC для каждого из символов в векторе запасов.

Есть ли какой-либо момент для проверки стратегии квантстрата по нескольким активам за один раз?

Любые мысли/обратная связь будут оценены.

+0

Добро пожаловать в Stackoverflow !. Я настоятельно рекомендую работать с средами, их структура облегчает манипулирование и применение различных функций/стратегий. См. Это для [примера] (http://stackoverflow.com/questions/40119177/pairwise-correlation-r-code/) – OdeToMyFiddle

+0

Если вы решили эту проблему, вы можете добавить ответ. Это поможет другим, имеющим такую ​​же проблему. – Tushar

ответ

3

quantstrat делает то, о чем вы спрашиваете по умолчанию.

Вот пример:

data(stratBBands) #load a test strategy, you'd use your own 
symbols = c("XLF", "XLP", "XLE", "XLY", "XLV", 
      "XLI", "XLB", "XLK", "XLU") 

getSymbols(symbols 
      , src='yahoo' 
      , index.class=c("POSIXt" 
      ,"POSIXct") 
      , from='1999-01-01') 

out<-try(applyStrategy(strategy=stratBBands 
         , portfolios='bbands' 
         , parameters=list(sd=2,n=60))) 

Или вы можете посмотреть на почти любой из многочисленных примеров, включенных в quantstrat, так как почти все они используют несколько символов.

Смежные вопросы