Я кодирую Rscript для выполнения Jtst для парной торговли. Сначала я объявил функцию для определения корреляции между двумя отдельными акциями, затем я добавляю a для каждого цикла, чтобы выполнить задачу для списка акций.Однако для каждого цикла не распознается первая функция.
Я пытался использовать функцию doSHOW в соответствии с информацией из Интернета, но она не работала.
pkgs <- list("quantmod", "doParallel", "foreach", "urca")
lapply(pkgs, require, character.only = T)
registerDoParallel(cores = 4)
jtest <- function(t1, t2) {
start <- sd
getSymbols(t1, from = start)
getSymbols(t2, from = start)
j <- summary(ca.jo(cbind(get(t1)[, 6], get(t2)[, 6])))
r <- data.frame(stock1 = t1, stock2 = t2, stat = j@teststat[2])
r[, c("pct10", "pct5", "pct1")] <- j@cval[2, ]
return(r)
}
pair <- function(lst) {
d2 <- data.frame(t(combn(lst, 2)))
stat <- foreach(i = 1:nrow(d2), .combine = rbind) %dopar% jtest(as.character(d2[i, 1]), as.character(d2[i, 2]))
stat <- stat[order(-stat$stat), ]
rownames(stat) <- NULL
return(stat)
}
sd <- "2018-01-01"
tickers <- c("FITB", "BBT", "MTB", "STI", "PNC", "HBAN", "CMA", "USB", "KEY", "JPM", "C", "BAC", "WFC")
pair(tickers)
Ошибка в jtest (as.character (d2 [i, 1])), as.character (d2 [i, 2])): задача 1 не выполнена - "не удалось найти функцию" jtest ""