r - 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)
}
}
解决方案
您的情况有一个错误:
if (dummy_var=2)
=
用于分配值。在您的情况下,您想检查是否dummy_var
等于2
,因此您必须使用
if (dummy_var == 2)
推荐阅读
- c - 当服务器发送关闭信号时使用 libcurl 关闭 websocket 连接
- python-3.x - Flask-Login 使用 Radius
- java - 使用@MapsId 在双向@OneToOne 上级联
- jquery - 使用 jQuery 更改 css 动画持续时间
- java - message.setFlag(Flags.Flag.SEEN, true); 工作正常并将邮件标记为已读,但如果我在 Gmail 中打开邮件,Same 不会更新
- reactjs - 'string[]' 类型的参数不能分配给'string' 类型的参数
- python - 查找数组中重复元素的长度和起始索引的快速方法
- javascript - 在 React onClick() 中没有调用函数
- vb.net - 如何让 Outlook 识别整个链接,而不仅仅是其中的一部分?
- sql - 错误 1055:对不同列和另一列的总和进行分组 - SQL