我正在尝试复制 Data Mining with R 书中的股票预测案例研究,并尝试将一些代码放在一个循环中,以便我可以处理不止一只股票。但是,我无法弄清楚如何让指定模型函数在循环中工作。我想为每只股票计算一些技术指标,并最终使用随机森林来选择最有用的。下面是一些示例代码。
library(quantmod)
# The list of stocks I want to investigate
stock.symbols = c("MMM", "IBM")
# Download daily stock prices to global environment
getSymbols(stock.symbols, src = "yahoo", quotes = c("Open", "High", "Low", "Close", "Volume", "Adjusted"), from = "2011-01-01", to = "2012-01-01")
# "Custom" indicator functions
myAroon = function(x) aroon(Cl(x))[,1]
myADX = function(x) ADX(HLC=x)[,4]
# Try to create quantmod model for each stock
for(i in stock.symbols)
{
my.model = specifyModel(Cl(MMM) ~ myAroon(MMM) + myADX(MMM)) # this line works - looks up MMM in global environment
# my.model = specifyModel(Cl(i) ~ myAroon(i) + myADX(i)) # I would like something like this
}
我了解,如果您通过股票代码(例如“MMM”)引用股票,则指定模型会在当前工作区中查找它。我想知道如何使它更通用。目前我收到以下错误:
no applicable method for 'as.xts' applied to an object of class "character"
我曾尝试浏览指定模型的文档,但无济于事(它似乎不是世界上使用最广泛的函数)。我也尝试过使用 get() 和 as.name()。我意识到我在这里可能做错了什么,所以提前道歉!任何帮助都将不胜感激。