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

Dav*_*vid 3 r quantstrat

我正在使用一些指标构建基本交易策略。我的问题是我希望它在多个股票上运行,而不必指定我想要测试的每个单独的股票。

目前我可以使用向量一次获取多个符号,如下所示

 # Get Shares from Yahoo Finance
 Stocks<- ASX_200_Companies_Copy$Code
 getSymbols(Stocks, from = from, to = to, src =  "yahoo", adjust =  TRUE)
Run Code Online (Sandbox Code Playgroud)

我可以轻松地在 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)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我一次只能测试一项资产的策略,如果我想在大型数据集中找到趋势,这将不会有效。

指定股票作为 OHLC 的参数会产生以下错误

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

我想简单地绑定一些生成的单独股票。然而这也不起作用。

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'
Run Code Online (Sandbox Code Playgroud)

即使我成功地绑定了每个交易品种,我想该策略也会针对股票向量中的每个交易品种测试 OHLC 上的指标。

有没有办法同时测试多种资产的量化策略?

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

Bri*_*son 5

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)) )
Run Code Online (Sandbox Code Playgroud)

或者您可以查看 中包含的许多示例中的几乎任何一个quantstrat,因为几乎所有示例都使用多个符号。