MT5への願い - ページ 51

 
Yedelkin:

説明する。Expert Advisorがそのチャートのシンボルのティックを処理しない場合、そのシンボルのNewTick イベントの連続生成は、そのExpert Advisorが処理するイベントのキューをオーバーフローさせることになる。


https://www.mql5.com/ru/docs/runtime/running

クライアント端末で発生したイベントは、すべて共通キューにスタックされます。このように、イベントは受け取った順番に次々と処理される。唯一の例外はNewTickイベントです。キューに既にイベントが存在する場合、あるいはイベント処理中の場合、新しい NewTick イベントはキューに配置されない。

イベントキューはサイズに制限があります。キューが一杯になると、古いイベントは処理されずに削除され、新しいイベントのためのスペースが確保されます。このため、効率的なイベントハンドラを記述し、無限ループを使用しないことを強くお勧めします(1つのStartイベントを処理するスクリプトを除く)。

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Программы MQL5 / Выполнение программ - Документация по MQL5
 
Rosh:

https://www.mql5.com/ru/docs/runtime/running

クライアント端末は、発生したすべてのイベントを共通のキューに格納する。このように、イベントは受信した順に次々と処理される。ただし、NewTick イベントは例外です。キューに既にイベントが存在する場合、あるいはイベント処理中の場合、新しい NewTick イベントはキューに配置されない。

イベントキューはサイズに制限があります。キューが一杯になると、古いイベントは処理されずに削除され、新しいイベントのためのスペースが確保されます。このため、効率的なイベントハンドラを記述し、無限ループを使用しないことを強くお勧めします(例外は、単一のStartイベントを処理するスクリプトです)。

したがって、「共通キュー全体に対して1つのNewTick イベント」というルールは、EAにOnTick()関数があるか ないかに かかわらず、常に有効です。 説明ありがとうございました!

テスターで不要なティック生成処理をオフにすることについては、まだ質問があります。

 

Yedelkin:

テスターで不要なテロップを発生させる処理を無効化することに疑問が残ります。

そこで処理しなければ、論理的にはすべてがうまくいく。

 
Interesting:

そこで処理しなければ、論理的にはすべてがうまくいく。

テスターの刻みは、テストや最適化の期間中、強制的に生成されているのでしょう。あなたはそう思いますか?その場合、Expert Advisor が接続されているシンボルに対して、その EA で処理されないティックが強制的に生成されます。つまり、このシンボルにはティック処理がない(あなたの提案)にもかかわらず、テスターはティック生成に時間を浪費することになります。 分からないことがあれば、喜んで新しいことを学ぶ用意があります。

 
Yedelkin:

さて、もう一度言いますが、Expert Advisorは、それが接続されているシンボルでは全く動作しません。そして、彼はこのシンボルのSLとTPを追跡する必要はありません。つまり、Expert Advisorはこのシンボルにティックを必要としない。EAは最低限どこかに付けないと動かないので、必要なところだけシンボルに付けています。

エヘン...また、なぜExpert Advisorを取引していないシンボルでテストする必要があるのでしょうか?取引に必要なものをテストする。

また、取引する必要がない場合は、テストも必要ありません。リアルタイムで動作するEAから引用履歴を使用して作業します。

 
Rosh:

クライアント端末は、発生したすべてのイベントを共通のキューに格納する。このように、イベントは受信した順に次々と処理される。

Rashidさん、EA/スクリプト/インジケーターで処理されないイベントはどうなるのでしょうか?そういう質問だったんですね。

本当にキューに入れ、応答の対象となるイベントの処理が 起動したときにのみ、キューから削除されるのでしょうか?

それとも、やはり全員が自分のキューを持っていて、処理が必要なイベントだけがそこに集められると考えるのが正しかったのでしょうか?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
Yedelkin:

一見して「大丈夫だろう」と思う程度です。 テスターの刻みは、テスト・最適化期間中ずっと、強制的に生成されているのだと思います。あなたはそう思いますか?その場合、EAがアタッチされているシンボルに対してティックが強制的に生成され、その(ティックが)このEAで処理されないようにします。つまり、このシンボルにはティックの処理がない(あなたの提案)にもかかわらず、テスターはティックを生成するために時間を浪費することになります。 もし私が理解していないことがあれば、新しいことを喜んで学びたいと思います。

オールティック」モードについてお話しします。

強制的に生成されるだけでなく、Expert Advisorで全てのシンボルを選択して取引する(これがないと無理)ことは理解できました。

テスターの設定で選択されたシンボル(メインシンボル)のティックをOnTickで処理するかどうか(この場合、このタイプのイベントがすでに処理されているか、キューに存在する場合は、キューに追加されません)です。

少なくとも私は、この開発者のロジックをこう理解しました。

3.説明したタスクに基づき、ChartEventに関連するカスタム イベントで、追加シンボルのティックに関する情報を取得します。ChartEventはキューに入り、満杯になると実行されるか、削除されるかのどちらかです。

以上のことから、「追加シンボル」(Expert Advisor の外部)からのティックの処理が非効率的に行われると、問題となるのは ChartEvent の処理であり、イベントキュースタック全体が散逸することが明らかであります。

Expert Advisorのロジックを完全に理解しているわけではありませんが、このような条件では、すべてのシンボルの価格と、追加のシンボルに関するその他の重要な情報を収集するブロックをタイマーに入れることになります。そして、ChartEventを使用して、例えば新しいバーの出現に関する情報のみを転送することになります。

また、MT4と同様にOnTickブロック(使用されている場合)で他のシンボルに関する情報を処理することもできます。しかし、ここではタイマーが定期的に処理され、1秒に1回以上ではないので、タイマーには何らかの利点があります。

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5
 
komposter:

Rashidさん、EA/スクリプト/インジケーターで処理されないイベントはどうなるのでしょうか?それが疑問だったんですね。

本当にキューに入れられ、応答の対象となるイベントの処理が 起動したときだけ、キューから取り除かれるのでしょうか?

それとも、やはり全員が自分のキューを持っていて、処理が必要なイベントだけがそこに集められると考えるのが正しかったのでしょうか?

私が理解する限り、処理がない場合、新しいイベントが到着すると、キュー内のイベントはそこから「ドロップ」されます(キューが満杯の場合)。
 
komposter:

Rashidさん、EA/スクリプト/インジケーターで処理されないイベントはどうなるのでしょうか?それが疑問だったんですね。

本当にキューに入れられ、応答の対象となるイベント処理が 有効になったときだけキューから削除されるのでしょうか?

それともやはり、各キューがそれぞれ持っていて、処理が必要なイベントだけがそこに集められると考えるのが正しかったのでしょうか?

開発者の回答

Expert Advisor/Script/Indicatorはそれぞれ独自のキューを持ちます。もちろん、ハンドラが利用できない場合は、キュー内のものは何も凍結されない。まあ、ハンドラがない場合は読み飛ばされてしまうのですが。

 
komposter:

エヘン...なぜ、取引していない商品でEAをテストするのですか?

私の投稿をよく読んでいないのでしょう、すでに動作原理が示されています。この時点で話題を終了することをお勧めします。

その理由を説明したいのですが、いずれにせよ、ありがとうございました。