Я пытаюсь рассчитать RSI для ретроспективного периода в 14 дней. В моем файле Excel есть три столбца: ДАТА, ОТКРЫТЬ, ЗАКРЫТЬ. Но когда я проверяю dff›0 внутри оператора if, возникает ошибка — Ошибка в if (dff›0) { : аргумент имеет нулевую длину. Ниже мой код. Любые предложения, почему это происходит?
library(readxl)
data <- read_excel(address of file)
data <- data.frame(data)
rows <- nrow(data)
RSI <- rep(0,rows)
for(i in 14:rows){
gain <- 0
cnt_gain <- 0
cnt_loss <- 0
loss <- 0
for(j in i-13:i){
dff <- data[j,3]-data[j,2]
if(dff > 0){
gain <- gain + dff
cnt_gain <- cnt_gain + 1
}
else{
loss <- loss -dff
cnt_loss <- cnt_loss + 1
}
}
avg_gain <- gain/cnt_gain
avg_loss <- loss/cnt_loss
RSI[i] <- 100 - 100/(1+ avg_gain/avg_loss)
}
-
вi-13:1
оценивается после:
. Вы хотите(i-13):i
- person SmokeyShakers   schedule 17.08.2020seq(to = i, length = 13)
. - person G. Grothendieck   schedule 17.08.2020