インジケーターを左右にシフトさせるときの注意点

 カスタムインジケーターを左右にシフトさせて使いたいという方は結構います。

 

たとえば、移動平均線を例にした場合、単純に考えると、

上のプログラムのように、iMA()の4つ目のパラメーターに任意のシフト数を指定してやればよいような気がするのですが、これだとうまくいきません。

左に5つシフトさせると、上の画像のように、最後にグラフが下方へ落ちてしまい、しかも、新しいバーが出現しても更新されていきません。

逆に、右に5つシフトさせると、上の画像のように、最新の5つ分のバーのグラフが表示されません。

 

この問題を解決する方法はいくつかあると思いますが、私のように算数の苦手な方は、

上のプログラムのように、とりあえず、iMA()の4つ目のパラメーターは「0」のままにしておいて、

別途、init()関数内で、上のように、SetIndexShift()関数でシフト数を指定してやるのが一番手っ取り早いです。

 

そうすると、


上の画像のように、うまく表示され、正常に更新されていきます。