//---if ( rates_total < MinBars ) return(0);
//--- last counted bar will be recountedint limit=rates_total-prev_calculated-1;
if(prev_calculated>0) limit++;
//---for( int i=limit; i>=0; i--)
{
IndBuffer[i] = Add your code here
}
//---return(rates_total);
OnCalculateの一番最初にprev_calculatedを出力してみてください。
そして、点滅しているかどうかという、何らかの標準的な指標で比較する。
static int last_rates_total=0; // 前回値「前回時の入力時系列サイズ
static int last_prev_calculated=0; // 前の呼び出しで処理されたバー値
と検証コードをジャーナルに出力
AOMインジケータを分単位で起動し、このようなレポートが得られました。
特に予期せぬことはなく、新しいバーだけが入ってくるという通常の処理が行われている。
OnCalculate()関数に 2つのスタティック変数を追加し、現在の値と以前の値を比較できるようにした。
何も予想外のことはなく、新しいバーだけが入ってくるという通常の処理が行われているのです。
いいえ、標準的な指標である「移動平均」「Awesome Oscillator」をチャートに表示させています。観察された。データウィンドウ」の値がちらついたり、消えたりすることはありませんでした。
いいえ、標準的な指標である「移動平均」「Awesome Oscillator」をチャートに表示させています。観察された。いいえ、「データウィンドウ」の数値がちらついたり消えたりすることはありませんでした。
ソース(mq5)に入っているインジケーターのことです。
もし点滅しない場合は、明らかにコードに問題があります。チラつかなくなるまで簡略化する。その逆も然りで、標準的なコードを自分の状態に合わせて、チカチカするまで改良する。
では、それを受け入れて、当たり前だと思い、原因を探すのをやめなければならないのですか?
ところで、OnCalculate() 関数を一通り使うための普遍的な「ラッパー」は、標準的なインジケーターの中にも見当たりませんね。
もしかしたら、そのような「ラッパー」を持つインジケータをご存じで、それをリファレンスとして使用することは可能でしょうか?
では、それを受け入れて、当たり前だと思い、理由を探すのをやめなければならないのですか?
でも、もうコードは極限まで簡略化しています。じゃあ、他の方法でやってみるよ。
どんな些細なことでもよいのです。
ところで、OnCalculate()関数を一通り使うための普遍的な「ラッパー」は、標準的なインジケーターの中でもまだ見つかっていないようです。
もしかしたら、そのような "ラッパー "を持つインジケータを提案して、それを参考にすることができるかもしれませんね。
いくつかのバリエーションを見たことがあります。検索して選ぶことができます。
自分もこれを使っています。