R Ошибка неожиданной круглой скобки при использовании For l oop с несколькими переменными - PullRequest
0 голосов
/ 27 мая 2020

Я новичок в R и пишу модель торговли акциями. Ниже приведен исходный рабочий код.

Initiate Signal
rsi <- RSI(price, day)  #rsi is the lag of RSI
for (i in (day+1): length(price)){
  if (rsi[i] < 30){  #buy one more unit if rsi < 30
    signal[i] <- 1
  } else if (rsi[i] < 50){ #no change if rsi < 50
    signal[i] <- 0
  } else {         #sell  if rsi > 50
    signal[i] <- -1
  }
}

Проблема с вышеизложенным состоит в том, что он продолжает генерировать торговый сигнал каждый раз, когда RSI меньше 30. Следовательно, я создал dummy_var, который обновляется в течение l oop. Продажа запускается, когда есть существующий сигнал на покупку, т.е. если значение dummy_var = 2, и покупка, когда dummy_var = 1. Но я продолжаю получать это сообщение об ошибке - Ошибка: неожиданно '}' в "}" . Пожалуйста, помогите.

for (i in (day+1): length(price)){
  if (dummy_var=2){
    (rsi[i] < 50)  #no change if rsi < 50
    signal[i] <- 0
    dummy_var <- 2
  } else if (dummy_var = 2){
    (rsi[i] > 50) # sell if great than 50
    signal[i] <- -1
    dummy_var <- 2
  } else (rsi[i] < 30){
    signal[i] <- 1
    (dummy_var <- 2)
  }
}

1 Ответ

0 голосов
/ 27 мая 2020

В вашем условии есть ошибка:

if (dummy_var=2)

= используется для присвоения значения. В вашем случае вы хотите проверить, равно ли dummy_var 2, поэтому вы должны использовать

if (dummy_var == 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...