我有一個列表,其中包含我想創建列的各種符號,並對列表的其餘部分進行排列。排列在列表的一列
例如,我有一個列表x
其中包含時間系列SPY
和IWM
。對於每個列表項我計算rsi
。然後,我想在每個列表中創建一個新列,它將和IWM
之間的值分配給最低的rsi
值。
我總是得到1的等級,這是不正確的,所以在我的代碼中必須有錯。正如我所說的,我需要排名rsi
。
library(quantmod)
stockData <- new.env()
symbols = c("IWM","SPY")
getSymbols(symbols, src='yahoo',from = "2016-10-01",to = Sys.Date())
x <- list()
for (i in 1:length(symbols)) {
x[[i]] <- get(symbols[i], pos=stockData) # get data from stockData environment
x[[i]]$rsi <-RSI(Cl(x[[i]]),14)
x[[i]]$rank <- NA
x[[i]]$rank<-apply(-x[[i]]$rsi,1,rank)
}
的'RSI'取決於14滯後值,這意味着只有在14個觀察,你會得到一個實際的RSI值。因此,對於前14個觀測值,您將具有「NA」值。這會混亂的級別。計算排名時,你是否想忽略前14次觀察? –