インジケーターのfor文の間違えを考える

インジケーター MQL4

前回までに作成したインジケーターでは、過去足の分析はできてもリアルでは使えません。

その原因を考えてみます。

int limit = Bars – IndicatorCounted();

for(int i = limit-2 ; i >=0; i–)

ここが間違えているみたいです。

limit:変数、Bars:チャート上のすべての本数、IndicatorCounted:最初は0

チャート上に1000本のローソク足があったとすると

limit=1000-0=1000本なので

for文が1000-2=998本から0まで1本ずつ繰り返すことになる?

いろいろ調べてみた結果

int limit = Bars – IndicatorCounted()-2 ;
if(limit < 1)limit = 1;
for (int i = limit; i >= 0; i–)

この方が上手く表示させることができました。

真ん中のif文がある事で常に0と1の2回分を繰り返すことができるのかと思っています。

条件式の中のバッファーで[i+1]を使用しているために【-2】とする必要があるみたい。

条件式が[i]だけの場合には【-1】でOK。

0番目の足を通るだけでいい【-1】

1本前の[i+1]つまり0と1番目の足を通る必要があることの違い。

for文が難し過ぎる・・・。

コメント

タイトルとURLをコピーしました