我已经针对单个符号和非常小的符号组测试了我的代码。我发现我添加的符号越多,我获得的交易就越少。例如,如果我只包含前五个符号,那么它们似乎至少有一个交易。如果我扩展到20左右,那么一些符号就有交易,但第一组中的符号都不再有交易。
我希望在158个符号列表中执行策略。
我添加了并行包。这似乎没有帮助。我正在使用Guy Yollin's Luxor (MACD) example。
我最初的applyStrategy是:
out <- applyStrategy(strategy=strategy.st,
portfolios=portfolio.st,
parameters=list(nFast=fastMA,
nSlow=slowMA,
nSig=signalMA,
maType=maType),
debug=TRUE,
verbose=TRUE)
上面没有返回错误,但也没有交易(再次,在较小的样本上进行测试,我确实得到了交易)。
我对foreach / parallel包的尝试是:
foreach (i=1:length(symbols)) %dopar%
out <- applyStrategy(strategy=strategy.st,
portfolios=portfolio.st,
parameters=list(nFast=fastMA,
nSlow=slowMA,
nSig=signalMA,
maType=maType),
symbols=c(symbols[i]),
debug=TRUE,
verbose=TRUE)
这段代码返回以下错误:
foreach中的错误(i = 1:长度(符号))%dopar%out&lt; - applyStrategy(strategy = strategy.st,: 赋值目标扩展为非语言对象
所以,现在我自然不知所措。我可以单独做这些符号(昨天做过),但它花了很长时间,我知道它可以更简单。
Sample script uploaded to Dropbox
非常感谢任何建议!