【发布时间】:2017-02-03 12:04:42
【问题描述】:
我正在构建一个包含一些指标的基本交易策略。我的问题是我希望它在多个股票上运行,而不必指定我要测试的每个股票。
目前我可以使用向量一次获取多个符号,如下所示
# 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"
我想简单地 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 每个符号,我想该策略也会针对 Stocks 向量中的每个符号测试 OHLC 上的指标。
是否可以同时针对多种资产测试 quantstrat 策略?
任何想法/反馈将不胜感激。
【问题讨论】:
-
欢迎来到 Stackoverflow!。我强烈建议使用环境,它们的结构有助于轻松操作和应用各种功能/策略。请参阅example
-
如果你已经解决了这个问题,你可以添加答案。这将帮助其他有同样问题的人。
-
@OdeToMyFiddle、quantstrat 和blotter 已经在内部广泛使用环境来尽可能避免复制,并作为持久信息的存储容器。
-
感谢@BrianG.Peterson 的解释。我没有使用过
quantstrat和blotter,但我是您PerformanceAnalytics包的重度用户。此外,您的PortfolioAnalytics包简化了很多优化问题,感谢您创建和维护如此优秀的包!
标签: r quantstrat