2016-10-16 2 views
0

私は修正しようとしているコード(下記)を持っています。目標は、7つの連続した陽性日があるかどうかをチェックすることです(クローズはオープンよりも高い)。これが真であれば8日目にバイナリ値を置きます(Trueの場合は1、Falseの場合は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のバイナリ値を割り当てます。

私はEUR/USDのサンプルOHLCデータに7連休が存在することを知っていますので、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) 
} 
関連する問題