I'm testing out quantstrat using a simple one-indicator strategy. The error I get after applyStrategy(...) is Error in .xts(e, .index(e1), .indexCLASS = indexClass(e1), .indexFORMAT = indexFormat(e1), : index length must match number of observations In addition: Warning messages: 1: In match.names(column, colnames(data)) : all columns not located in roc_15 for STOXX.Open STOXX.High STOXX.Low STOXX.Close STOXX.Close.1 2: In min(j, na.rm = TRUE) : no non-missing arguments to min; returning Inf 3: In max(j, na.rm = TRUE) : no non-missing arguments to max; returning -Inf my code: #################################################### # Environments # #################################################### if( !exists(".instrument") ) .instrument <<- new.env() if( !exists(".blotter") ) .blotter <<- new.env() if( !exists(".strategy") ) .strategy <<- new.env() suppressWarnings( rm("account.STOXX", "portfolio.STOXX", pos=.blotter) ) suppressWarnings( rm("stratROC", "initDate", "initEq") ) suppressWarnings( rm("order_book.STOXX", pos=.strategy) ) ################################################## # Get Data # ################################################## ch <- odbcConnect("PostgreSQL35W") tablenames <- sqlTables(ch, schema = "marketdata")[,"TABLE_NAME"] chooseTable <- function(table.name) x <- table.name table.name <- guiv(chooseTable, argList = list(table.name = tablenames)) data.df <- sqlFetch(ch, paste("marketdata", table.name, sep = "."), colnames = TRUE, rownames = TRUE) data.xts <- as.xts(data.df) STOXX <- xts( cbind( as.numeric(data.xts$open), as.numeric(data.xts$high), as.numeric(data.xts$low), as.numeric(data.xts$close) ), order.by=index(data.xts) ) colnames(STOXX) <- c("STOXX.Open", "STOXX.High", "STOXX.Low", "STOXX.Close") rm(table.name, tablenames, ch, chooseTable) stock('STOXX', currency="ZAR", multiplier=1) mktdata <- STOXX spot <- as.xts( as.numeric(data.xts$spot), order.by=index(data.xts) ) colnames(spot) <- "spot" ################################################ # Initialise # ################################################ initDate = index( first(data.xts) ) initEq = 100 currency("ZAR") initPortf('STOXX', symbols='STOXX', initDate=initDate) initAcct('STOXX', portfolios='STOXX', initDate=initDate, initEq=100) initOrders(portfolio='STOXX', initDate=initDate) stratROC <- strategy("ROC") ##################################################### # Construct Strategy # ##################################################### stratROC <- add.indicator( strategy = stratROC, name = "ROC", arguments=list( x=Cl(STOXX) ), label="roc_15" ) # gte stratROC <- add.signal( stratROC, name="sigThreshold", arguments = list(column="roc_15", Threshold=5, relationship="gte"), label="roc.gte" ) # lte stratROC <- add.signal( stratROC, name="sigThreshold", arguments = list(column="roc_15", Threshold=-5, relationship="lte"), label="roc.lte" ) # long enter stratROC <- add.rule( stratROC, name='ruleSignal', arguments = list(sigcol="roc.gte", sigval=TRUE, orderqty=1, ordertype='market', orderside='long', pricemethod='market', TxnFees=-2), type='enter', path.dep=TRUE ) # long exit stratROC <- add.rule( stratROC, name='ruleSignal', arguments = list(sigcol="roc.lte", sigval=TRUE, orderqty='all', ordertype='market', orderside='long', pricemethod='market', TxnFees=-2), type='exit', path.dep=TRUE ) # short enter stratROC <- add.rule( stratROC, name='ruleSignal', arguments = list(sigcol="roc.lte", sigval=TRUE, orderqty=-1, ordertype='market', orderside='short', pricemethod='market', TxnFees=-2), type='enter', path.dep=TRUE ) # short exit stratROC <- add.rule( stratROC, name='ruleSignal', arguments = list(sigcol="roc.gte", sigval=TRUE, orderqty='all', ordertype='market', orderside='short', pricemethod='market', TxnFees=-2), type='exit', path.dep=TRUE ) out <- try( applyStrategy(strategy=stratROC, portfolios='STOXX') ) updatePortf( Portfolio='STOXX', Dates=paste('::', as.Date(Sys.time()), sep='') ) ################################################# # End # ################################################# Any help would be much appreciated. Steven Kukard [[alternative HTML version deleted]]