R - Quantstart:多个股票的测试策略

时间:2017-02-03 12:04:42

标签: r quantstrat

我正在建立一个基本的交易策略,其中包含一些指标。我的问题是,我希望它能够在多个股票上运行而无需指定我想要测试的每个股票。

目前我可以使用矢量一次获得多个符号,例如下面的

 # 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指标。

有没有一次测试多个资产的量化策略?

任何想法/反馈都将不胜感激。

1 个答案:

答案 0 :(得分:4)

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中包含的几乎所有示例中的任何示例,因为几乎所有示例都使用多个符号。