TFを変更するのは問題 - ページ 6

 
Vasyl Nosal:
それだけ?不具合は出ないの?
不具合があるのは、コードのせいではありません。:)持って、使ってください。
 
Sergei Vladimirov:

ウラジミール、なぜOnCalculate()の中でこんなことをしているんだ?最後の2行、つまり配列の再初期化を意味しています。各バーで両方のバッファを計算しているのだから、不要な動作だ。

if(prev_calculated==0)
{
   limit=rates_total-1;
   ArrayInitialize(up_arr,EMPTY_VALUE);
   ArrayInitialize(down_arr,EMPTY_VALUE);
}
初期化をティック 毎に行うことにした理由は何ですか?インジケータ起動時にprev_calculated==0の条件を1回または2回実行する。動作中に履歴が変更されるとprev_calculated==0になることがあるが、めったにないことであり、履歴の変更には指標の再計算が必要である。
 
Sergei Vladimirov:
不具合があるのは、コードのせいではありません。:)持って、使ってください。

ありがとうございました:)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

次は誰だ?

 
Karputov Vladimir:
なぜ、初期化を毎ティック行うことにしたのですか?インジケータ起動時にprev_calculated==0の条件を1回または2回実行する。動作中に履歴が変更されるとprev_calculated==0になることがあるが、ほとんどないため、履歴の変更にはインジケータの再計算が必要。
ヒストリー読み込み時のバッファのゼロインをなしにできないか?
 
Karputov Vladimir:
初期化が毎ティック行われると考える根拠は何ですか?
どこに書いてあったっけ?すべてのバーで両方のバッファを計算する場合、OnCalculate() でバッファを再初期化するのはなぜか、という質問です。
 
Sergei Vladimirov:
どこに書いてあったっけ?すべてのバーで両方のバッファを計算する場合、OnCalculate()でバッファを再初期化するのはなぜか、という質問です。
不正確な記述。prev_calculated==0 の場合、その後すべてのバーをバイパス しますが、 インジケータバッファの すべての値の置き換えを保証するものではありません。したがって、prev_calculated==0のときは、インジケータバッファをクリアする必要があります。
 
Vasyl Nosal:

ありがとうございました:)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

次は誰だ?

なぜ嘘をつくのか?

 
Karputov Vladimir:
不正確な記述。prev_calculated==0の場合、その後すべてのバーをバイパス しますが、インジケータバッファの すべての値の置換を保証するものではありません。したがって、prev_calculated==0の時点で、インジケータ・バッファをクリアする必要があります。

はい?あなたのコードで、あるバッファのある値が満たされない場合の例を教えてください。一番最初に出てくる小節は別かもしれませんが。

 
Sergei Vladimirov:

なぜ嘘をつくのか?

天才です。

履歴のないペアに切り替えてから、別のTFに切り替えてみましたか?

 
Sergei Vladimirov:

それは発言ではなく、質問だった。

はい?あなたのコードで、あるバッファのある値が満たされない場合の例を教えてください。

この記事から コード1.43を取り出し、その行をコメントアウトするのです。

if(prev_calculated==0)
{
   limit=rates_total-1;
//ArrayInitialize(up_arr,EMPTY_VALUE);
//ArrayInitialize(down_arr,EMPTY_VALUE);
}

で、グラフを履歴の後ろにスクロールさせ、履歴を読み込ませたときの結果を見る。