R: Error in xts - order.by

I'm trying to (rebuild) the basic model for forecasting the S & P 500 INDEX index (data orignates from Yahoo finance)

I ran into some difficulties with "sorting" my dataset.
The following error occurs during the assembly of data.model:

Error in xts (new.x, x.index): NROW (x) must match the length (order.by)

After some research, I understand that the problem is with the order, and it seems that it does not have the order, as required for the basic package of zoos.

Is there an elegant way to solve this problem ?! thanks in advance

library(xts)
library(tseries)
library(quantmod)

GSPC <- as.xts(get.hist.quote("^GSPC",start="1970-01-02", 
quote=c("Open", "High", "Low", "Close","Volume","AdjClose")))

head(GSPC)

T.ind <- function(quotes, tgt.margin = 0.025, n.days = 10) {
 v <- apply(HLC(quotes), 1, mean)
 r <- matrix(NA, ncol = n.days, nrow = NROW(quotes))
 for (x in 1:n.days) r[, x] <- Next(Delt(v, k = x), x)
 x <- apply(r, 1, function(x) sum(x[x > tgt.margin | x <
 -tgt.margin]))
 if (is.xts(quotes))
 xts(x, time(quotes))
 else x
}


myATR <- function(x) ATR(HLC(x))[, "atr"]
mySMI <- function(x) SMI(HLC(x))[, "SMI"]
myADX <- function(x) ADX(HLC(x))[, "ADX"]
myAroon <- function(x) aroon(x[, c("High", "Low")])$oscillator
myBB <- function(x) BBands(HLC(x))[, "pctB"]
myChaikinVol <- function(x) Delt(chaikinVolatility(x[, c("High", "Low")]))[, 1]
myCLV <- function(x) EMA(CLV(HLC(x)))[, 1]
myEMV <- function(x) EMV(x[, c("High", "Low")], x[, "Volume"])[, 2]
myMACD <- function(x) MACD(Cl(x))[, 2]
myMFI <- function(x) MFI(x[, c("High", "Low", "Close")], x[, "Volume"])
mySAR <- function(x) SAR(x[, c("High", "Close")])[, 1]
myVolat <- function(x) volatility(OHLC(x), calc = "garman")[, 1]

library(randomForest)
data.model <- specifyModel(T.ind(GSPC) ~ Delt(Cl(GSPC),k=1:10) +
 myATR(GSPC) + mySMI(GSPC) + myADX(GSPC) + myAroon(GSPC) +
 myBB(GSPC) + myChaikinVol(GSPC) + myCLV(GSPC) +
 CMO(Cl(GSPC)) + EMA(Delt(Cl(GSPC))) + myEMV(GSPC) +
 myVolat(GSPC) + myMACD(GSPC) + myMFI(GSPC) + RSI(Cl(GSPC)) +
 mySAR(GSPC) + runMean(Cl(GSPC)) + runSD(Cl(GSPC)))
+5
source share
2 answers

traceback()indicates that an error occurs in the call Delt(Cl(GSPC),k=1:10):

> Delt(Cl(GSPC),k=1:10)
Error in xts(new.x, x.index) : NROW(x) must match length(order.by)

Delt (m x 1), (m x 2). , GSPC , Cl ( "" "AdjClose" ). , , ...

Cl , , getSymbols, "". - get.hist.quote, "AdjClose" .

colnames(GSPC) <- c("Open", "High", "Low", "Close","Volume","Adjusted")
Delt(Cl(GSPC),k=1:10)  # works now
+7
## Error in xts(x, order.by = order.by, frequency = frequency, ...
##     NROW(x) must match length(order.by)

. , , , , .

Excel CSV ( ) , ( data.frame .zoo) xts , .

, order.by. , data.frame . , , , . , R "" . ( , . , .)

, :

xts Excel order.by as.Date(), AND * xts. *

:

xl_sheet <- read_excel("../path/to/my_excel_file.xlsx")
sheet_xts <- xts(xl_sheet[-1], order.by = as.Date(xl_sheet$date))

, , xl_sheet [-1] .

+2

All Articles