インディケータ: ColorZerolagMomentumOSMA

 

ColorZerolagMomentumOSMA:

平滑化されたColorZerolagMomentum指標は色ヒストグラムとして表された変化率です。

図1 ColorZerolagMomentumOSMA

作者: Nikolay Kositsin

削除済み  

こんにちは。このインジケーターにはチェックがあります:

if(BarsCalculated(Momentum1_Handle)<rates_total
      || BarsCalculated(Momentum2_Handle)<rates_total
      || BarsCalculated(Momentum3_Handle)<rates_total
      || BarsCalculated(Momentum4_Handle)<rates_total
      || BarsCalculated(Momentum5_Handle)<rates_total
      || rates_total<min_rates_total)
      return(0);

使用するインジケータの1つのバーの数が rates_totalより小さい場合、そのインジケータは完全に再計算されることがわかりました(return(0)のため)。rates_totalと等しいかどうかのチェックをすべて別々に行い、一致しない場合はreturn(prev_calculated)とする方が良いのではないでしょうか?そうすれば、(BarsCalculated() == rates_totalの場合)最後のバーだけが再計算され、履歴全体は再計算されないからです。

ご回答をよろしくお願いします。

 
Tapochun:

こんにちは、この点について議論したいと思います。このインジケーターにはチェックがあります:

使用するインジケータの1つのバーの数が rates_totalより小さい場合、そのインジケータは完全に再計算されることがわかりました(return(0)のため)。rates_totalと等しいかどうかのチェックをすべて別々に行い、一致しない場合はreturn(prev_calculated)とする方が良いのではないでしょうか?そうすれば、(BarsCalculated() == rates_totalの場合)最後のバーだけが再計算され、履歴全体は再計算されないからです。

ご回答よろしくお願いします。

はい、原理的には、あなたのロジックは非常に合理的です。一度この方法でやってみたのですが、何かうまくいかなかったのですが、それが何だったのかよく覚えていません。ただ、このコードのインジケーターが何らかの不具合で変形しているのをキャッチし、そのままにしておくことにしたことだけは覚えています。