首页 > 解决方案 > R在使用带有多个变量的For循环时出现意外的括号

问题描述

我是 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。当存在现有买入信号时触发卖出,即如果 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)
  }
}

标签: r

解决方案


您的情况有一个错误:

if (dummy_var=2)

=用于分配值。在您的情况下,您想检查是否dummy_var等于2,因此您必须使用

if (dummy_var == 2)

推荐阅读