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

 

最後のデザインは完全に私に合っています。

皆さん、ありがとうございました。

 
Vasyl Nosal:
いいえ、ゼロにしないとスクリーンショットにあるような状態になります。

つまり、ループ自体の中に隙間があり、シーケンスが途切れているわけです。このコードでは、prev_calculatedがゼロになると、すべてのバーが再計算されます。そして、事前にゼロにすることは無意味であり、プロセッサの時間の無駄であることを意味します。

PS.ところで、重要なニュアンスを忘れています。ひょっとして、価格配列が時系列で反転しないMT5のことでしょうか?この場合、こんな感じでしょうか。

int OnCalculate(...)
{
   // индекс последнего посчитанного на прошлом вызове бара
   // с которого начинаем расчёт
   int nStartBar = MathMax(prev_calculated - 1, 0);

   for(int i = nStartBar; i < rates_total; i++)
   {
       // рассчитываем индикатор на всех непосчитанных барах
   }
}
 
Sergei Vladimirov:

つまり、ループ自体の内部に隙間があり、シーケンスが途切れているわけです。このコードでは、prev_calculatedがゼロになると、すべてのバーが再計算されます。そして、事前にゼロにすることは無意味であり、プロセッサの時間の無駄であることを意味します。

PS.ところで、重要なニュアンスを忘れています。ひょっとして、価格配列が時系列で反転しないMT5のことでしょうか?その場合、こんな感じになります。

mql4

いや、履歴のないペアにあなたのデザインでどうぞ。

ファイル:
 

まあね。しかし、問題はそう単純ではないことがわかった。

開発者は、チャートが更新されたかどうかを格納する新しいブル変数と、1本以上のバーが読み込まれた場合のバッファの自動リセットを要求しています。

 
Vasyl Nosal:

まあね。しかし、問題はそう単純ではないことがわかった。

開発者は、チャートが更新されたかどうかを格納する新しいブル変数と、1本以上のバーが読み込まれた場合のバッファの自動リセットを要求しています。

prev_calculatedとrates_totalという2つの変数があります。履歴の読み込みを制御する(この場合prev_calculated=0)には、インジケータバッファをどうするか考えなければなりません。このような場合の通常の動作は、履歴の読み込みをインジケータの 最初の読み込み イベントと同一にすることです。
 
Karputov Vladimir:
prev_calculatedとrates_totalという2つの変数を自由に使うことができます。ヒストリーロードを(prev_calculated==0で)制御することにより、インジケータバッファをどうするか考えなければなりません。このような場合の通常の動作は、ヒストリーロードを最初のインジケータロードイベントと 同一にします。
注文とどう関係があるのですか?ここでは4つのオプションがありますが、どれもうまくいきません。
 
Vasyl Nosal:

まあね。しかし、問題はそう単純ではないことがわかった。

開発者は、チャートが更新されたかどうかを保存する新しいブル変数と、1本以上のバーが読み込まれた場合に自動的にバッファをリセットすることを求めています。

ごゆっくりどうぞ。

そして、開発者からの回答を待っている間、上記の 司会者の言葉に耳を傾けてみてください。私は、あなたのこのトピックをもう一度最初からよく考えて読み直すことをお勧めします。

司会者のこの投稿に注目してください。例えば、https://www.mql5.com/ru/forum/68180#comment_2089395、 彼が引用したところです。

if(prev_calculated==0)  // значит история изменилась или это первый проход

結局のところ、私や他の人は、私の2つの投稿で、このことと他のいくつかのことについて、あなたにヒントを与えました: https://www.mql5.com/ru/forum/68180/page3#comment_2095342

そこで引用されている『ドキュメント』を見てください(ハイライトされたフレーズの部分だけでなく、テキスト全体でも)。

ゆっくりしていってください。そうすれば、この問題を解決する上で、すべてがうまくいくはずです。がんばってください。

 
Dina Paches:

ごゆっくりどうぞ。

そして、開発者からの返事を待っている間、上記の 司会者の言葉に耳を傾けてください。もう一度、このスレッドを読み直すことをお勧めします。

司会者のこの投稿に注目してください。例えば、https://www.mql5.com/ru/forum/68180#comment_20 89395、彼が引用したところです。

結局のところ、私や他の人は、私の2つの投稿で、このことと他のいくつかのことについて、あなたにほのめかしました: https://www.mql5.com/ru/forum/68180/page3#comment_2095342

そこで出されたDocumentationを見てください。

ゆっくりしていってください。そうすれば、この問題を解決する上で、すべてがうまくいくはずです。がんばってください。

コードの解決策はあるのでしょうか?

それとも、私がTFを変えて、あなたのデザインも通用しなくなることを恐れているのでしょうか?大丈夫です、ここではGENERALの問題を解いているのです。

 
Vasyl Nosal:

コードの解決策はあるのでしょうか?

それとも、私がTFを変えて、あなたのデザインも通用しなくなることを恐れているのでしょうか?大丈夫です、ここでは共通の問題を解決しているのです。

でも、やはりこの記事でお伝えしたアドバイス(https://www.mql5.com/ru/forum/68180/page4#comment_20970 11)を参考にすることをお勧めします。

そして、私のためのソリューションがあります。

ご自身のアドバイスのために、私抜きで続けてください。大まかな方向性のヒント(prev_calculatedとrate_totalを参照)は、ここでいろんな人が何度も教えてくれています。

あなたの私に対する思い込みから、私が話した 次のことにも気がつかなかったと推測されます。

タスクによって実装が異なる場合があります。ニュアンスが違うかもしれません。他の国で、いろいろな条件によって、どのように実施されているのか、見てみませんか?理解するためにリッピングの助けを借りて含む、決定、タスクに応じて、自分自身のための許容可能なオプションを形成する?

おそらくVictora Nikolaevの 投稿に気づかなかったと思いますが、https://www.mql5.com/ru/forum/68180/page2#comment_2091839

頭はあるんでしょ?しています。

問題を解決したいですか?そのように思えるのです。

ですから、希望と必要性があれば、さまざまなプログラムに対するソリューションを自分で持ち出して出力することができます。

私やこのスレッドの誰かが、もっと詳しく何かを提供する必要があるのでしょうか?いいえ。


 
Dina Paches:

...


コードの解決策はあるのでしょうか?