简体   繁体   English

R 使用带有多个变量的 For 循环时出现意外括号错误

[英]R Error unexpected parenthesis while using For loop with multiple variables

I am new to R and writing a stock trading model.我是 R 和编写股票交易 model 的新手。 The initial working code is below.初始工作代码如下。

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
  }
}

The problem with above is that it keeps generating trading signal everytime RSI is less than 30. Hence i created a dummy_var which is updated during the loop.上面的问题是每次 RSI 小于 30 时它都会不断生成交易信号。因此我创建了一个在循环期间更新的 dummy_var。 A sell is triggered when there is an existing buy signal ieif the value of dummy_var= 2 and buy when dummy_var=1.当存在现有买入信号时触发卖出,即如果 dummy_var=2 的值并在 dummy_var=1 时买入。 But i keep getting this error message - Error: unexpected '}' in " }" .但我不断收到此错误消息 -错误:“}”中的意外'}' Kindly help.请帮忙。

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)
  }
}

There is an error in your condition:您的情况有一个错误:

if (dummy_var=2)

The = is used to assign a value. =用于赋值。 In your case you want to check if dummy_var equals 2 , therefore you have to use在您的情况下,您想检查dummy_var是否等于2 ,因此您必须使用

if (dummy_var == 2)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM