【问题标题】:Coding New Trading Indicator编码新的交易指标
【发布时间】:2016-10-16 02:02:05
【问题描述】:

我有一段代码(如下)正在尝试纠正。目标是检查是否有连续 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 行,我试图在单个 if 语句中比较 7 个连续关闭和打开,然后将二进制值分配为真/假。

我知道一个事实,即欧元/美元的样本 OHLC 数据中确实存在连续 7 天的上涨,因此它不应该是 0 的向量。

有没有办法解决这个问题?这是唯一的错误吗?

【问题讨论】:

    标签: quantmod financial trading


    【解决方案1】:

    我对您的代码进行了几处更改。 请测试我的解决方案。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多