编码新的交易指标

时间:2016-10-16 02:02:06

标签: quantmod financial trading

我有一段代码(下面),我正在努力纠正。目标是检查是否有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的向量。

有解决方法吗?这是唯一的错误吗?

1 个答案:

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