我正在建立一个基本的交易策略,其中包含一些指标。我的问题是,我希望它能够在多个股票上运行而无需指定我想要测试的每个股票。
目前我可以使用矢量一次获得多个符号,例如下面的
# 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指标。
有没有一次测试多个资产的量化策略?
任何想法/反馈都将不胜感激。
答案 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
中包含的几乎所有示例中的任何示例,因为几乎所有示例都使用多个符号。