再初期化でカタチが変わってしまうインジケータへの応急処置。

リペイントするインジケータで有名なものの1つに SOLAR WIND が知られています。
私は使い方を知らないので、何が正しいのかは分かりませんが、、このインジケータを表示させてから、何本か Bar が生成した後に、インジケータのプロパティを開いて閉じる(=再初期化する)と、カタチが変わってしまいます。(上図チャートの上段が初期化前、下段が初期化後)


このようなインジケータを常に再初期化された状態にしておきたい場合、正攻法はロジックを理解して適切な修正を施す事だと思いますが、それが面倒な時は以下のような書き換えで済むことがあります。

int counted_bars = IndicatorCounted();
↓
int counted_bars = 0;

IndicatorCounted() は、前回計算した Bar の本数を返すので、その値をゼロにしてしまえば、全ての Bar を最初から計算することになる訳です。これは、どんなインジケータでも上手く行く…というものではありませんが、知っておいて損は無いテクニックかなと思います。