У меня есть три кадра данных. Первый кадр данных - это файл возврата товара, состоящий из 240 строк и 427 столбцов. Второй файл ранга акций, состоящий из 240 строк и 427 столбцов. Третий состоит из количества акций, которые должны быть включены 240 строк и 1 столбец. Я могу запустить это как один за другим, взяв 1: 6 строк. Затем к 6:12 и так далее. Но это займет много времени. Вот почему я создал три списка. Первый список состоит из биржевых возвратов, состоит из 40 элементов, каждый элемент состоит из 6 строк и 427 столбцов. Второй список состоит из биржевых рядов, содержащих 40 элементов, состоит из 6 строк и 427 столбцов. Третий список состоит из количества подлежащих включению акций, состоит из 40 элементов, каждый элемент состоит из 6 строк и 1 столбца. Теперь я не знаю, как использовать семейные функции для одновременного выполнения тезисов.
time_series_momentum<-function(xts.ret,xts.rank,n=1){
# for trading the top ranked asset, replace all ranks above n
# with NA to set up for element wise multiplication to get
# the realized returns
xts.rank <- as.matrix(xts.rank)
xts.rank[xts.rank > n] <- NA
# set the element to 1 for assets ranked <= to rank
xts.rank[xts.rank <= n] <- 1
# element wise multiplication of the
# 1 period return matrix and lagged rank matrix
mat.ret <- as.matrix(xts.ret) * xts.rank
# average the rows of the mat.ret to get the
# return for that period
vec.ret <- rowMeans(mat.ret, na.rm = TRUE)
# convert to an xts object
vec.ret <- xts(x = vec.ret, order.by = index(xts.ret))
f <- list(mat = mat.ret, ret = vec.ret, rank = xts.rank)
return(f)
}
test1<-time_series_momentum(xts_return[1:6,],xts_rank[1:6,],n=number[1:6,]
test1<-time_series_momentum(xts_return[7:12,],xts_rank[7:12,],n=number[7:12,]