我有一段代码(下面),我正在努力纠正。目标是检查是否有7个连续的正面天数(收盘价高于开盘价)。然后,如果为真,我们将在第8天放置二进制值,如果为真则为1,如果为假则为0。
seven.bar.buy = function(open,close,n){
seven.bar.buy = rep(0, length(open))
for(i in (n+2):length(open)){
for(j in (i-n-1):(i-1)){
if(open[(i-n-1):(i-1)]<close[(i-n-1):(i-1)]){
seven.bar.buy[i] == 1
}
}
}
return(seven.bar.buy)
}
seven.bar.buy(open = Op(EURUSD.st1), close = Cl(EURUSD.st1), n = 7)
以上代码运行时没有错误,但输出是0的向量。
我认为错误来自第5行,我试图比较7个连续的关闭并在单个if语句中打开,然后为true / false分配二进制值。
我知道有一个事实,我在欧元/美元的样本OHLC数据中确实存在连续7天,所以它不应该是0的向量。
有解决方法吗?这是唯一的错误吗?
答案 0 :(得分:0)
我对您的代码进行了一些更改。 请测试我的解决方案。
seven.bar.buy = function(open,close,n){
seven.bar.buy = rep(0, length(open))
for(i in (n+2):length(open)){
if(open[(i-n):i]<close[(i-n):i]){
seven.bar.buy[i] = 1
}
}
return(seven.bar.buy)
}