Я пытаюсь загрузить данные запаса, из которых я хотел бы автоматически выбрать те, которые удовлетворяют определенным условиям, касающимся скользящих средних. До сих пор мне удалось загрузить данные, но мне трудно создавать данные скользящей средней для каждого запаса.Вычисление данных о трендах в список запасов с использованием R quantmod
# Read csv as character list
ticker.list <- as.character(read.csv("shortftse250tickers.csv",header=F)$V1)
ftse250 <- new.env()
allData <- list()
# Get data
allData <- getSymbols(ticker.list, from='2017-01-03', src='google', env = ftse250)
# Extract Close data in correct order
tl <- mget(ticker.list, envir = ftse250)
closeData <- do.call(merge, eapply(ftse250, Cl)[allData])
# Calculate EMAs for each stock
for (i in ticker.list) {
ema3 <- EMA(closeData[i], 3)
ema7 <- EMA(closeData[i], 7)
}
Все вроде нормально, пока я не достигну последней для цикла, где я получаю сообщение об ошибке:
Error in if (length(c(year, month, day, hour, min, sec)) == 6 && c(year, :
missing value where TRUE/FALSE needed
Я попытался преобразованием closeData в список с помощью newData <- as.list(closeData)
и получил ошибку:
Error in EMA(newData[i], 3) : Invalid 'n'
Я могу вручную рассчитать EMA никаких проблем с:
EMA(newData$ZPLA)
Любая помощь будет высоко оценена.
Работает отлично, спасибо! –