1

我正面临这个问题,无法解决:这是代码:

library(quantmod)
library(TTR)
library(randomForest)


getSymbols('^STOXX50E', src='yahoo')
equity.index<-STOXX50E

myReturnsSign = function(x) sign(Delt(Cl(x),type="log"))[-1]
mySMA =function(x,n) SMA(Cl(x),n)[-1]
myEMA = function(x,n,ratio) EMA(Cl(x),n,ratio)[-1]



model1<-specifyModel(myReturnsSign(equity.index) ~ myEMA(equity.index,20,0.8) + mySMA    (equity.index,5))

这是错误消息:

Error in xts(model.frame(model@model.spec, data = env, na.action = NULL),  : 
NROW(x) must match length(order.by)

然而 :

> dim(myEMA(equity.index,20,0.8))
[1] 2632    1

> dim(mySMA(equity.index,5))
[1] 2632    1

> dim(myReturnsSign(equity.index))
[1] 2632    1
4

1 回答 1

2

FWIW,specifyModel代码已经超过 4 年没有工作了,我认为那不是因为它是稳定的。

无需仔细观察,您的问题似乎可以通过[-1]从函数中删除这些子集来解决

myReturnsSign = function(x) sign(Delt(Cl(x),type="log"))
mySMA =function(x,n) SMA(Cl(x),n)
myEMA = function(x,n,ratio) EMA(Cl(x),n,ratio)
model1<-specifyModel(myReturnsSign(equity.index) ~ myEMA(equity.index,20,0.8) + mySMA(equity.index,5))
于 2012-08-27T13:14:30.163 回答