記事"MQL5 クックブック: インジケーターサブウィンドウコンソールーボタン"についてのディスカッション - ページ 5

 
tol64:

そう思う?)

正直なところ、Expert Advisorを無効にした後、なぜインジケーターがマウスの動きを追跡しなくなるのか理解できません。インジケーターとExpert Advisorはどこでつながっているのでしょうか?
 
C-4:
正直なところ、Expert Advisorを無効にした後、なぜインジケータがマウスの動きを追跡しなくなるのか理解できません。インジケーターとExpert Advisorはどこでつながっているのでしょうか?

この場合、インジケーターがマウス移動イベントのトラッキングを必要としないのであれば、なぜイベントキューのフローを詰まらせるのでしょうか?

もちろん、その必要はない。しかし、最適化ということで言えば、必要なことだと思う。

 
tol64:

この場合、インジケーターがマウスの移動イベントを追跡する必要がないのであれば、なぜイベント・キューのフローを詰まらせるのでしょうか?

もちろん、その必要はない。しかし、最適化ということで言えば、必要なことだと思う。

Vasiliyが言っているように、プログラムは無闇にトラッキングを有効/無効にすべきではない:

  • 無効になっている場合のみオンにする(これは重要ではない)。
  • 作業終了後、元の状態に戻す。

つまり、無効化は、プログラム開始時にトラッキングが無効化されていた場合にのみ行われるべきである。

そうすれば、マウスイベントトラッキングの有無にかかわらず、どのようなプログラムの開始/停止の組み合わせでも正しく機能する。

 
tol64:

この場合、インジケーターがマウスの移動イベントを追跡する必要がないのであれば、なぜイベント・キューのフローを詰まらせるのでしょうか?

もちろん、その必要はない。でも、最適化ということを考えれば、必要なことだと思う。

つまり、あなたの例では、Expert AdvisorはインジケーターがEVENT_MOVE_MOUSEイベントを受信する必要がなくなったと判断し、終了する前にイベントを無効にしました。では、Expert Advisorはどのような根拠に基づいて、他のインジケーターに何が必要で何が不要かを決定するのでしょうか?自分で決めすぎではないか?
 
komposter:

バシリーは良い点を指摘している。プログラムは、無闇にトラッキングを有効/無効にすべきではない:

  • 無効になっている場合のみ有効にする(これは重要ではない)
  • 作業終了後、トラッキングを元の状態に戻す。
つまり、プログラム開始時にトラッキングが無効になっていた場合のみ、無効にする。

だから私はこうしている。

起動時にトラッキングが有効になっているプログラムは、アンロード時にトラッキングを無効にする。そして、チャート上に残りトラッキングを必要とするプログラムは、トラッキングが有効かどうかをチェックし、無効であれば有効にする。

前ページの私の投稿にある Expert Advisorとインジケータのコードの例について、曖昧な記述を避けるために、あなたの変形を示すことが望ましい。

 
C-4:
つまり、あなたの例では、Expert AdvisorはインジケータがEVENT_MOVE_MOUSEイベントを受信する必要がないと判断し、終了前にインジケータを無効にしました。Expert Advisorはどのような根拠に基づいて、他のインジケーターに何が必要で何が不要かを決定するのでしょうか?自分で決めすぎではないか?

エキスパートが自分で決める。でも、実は私はあなたの亜種の方が好きです。つまり、より正しい。私が書いたのは、より良い方法についてではなく、その必要性についてだ。 反転させる必要はない。完全に止める。

 
tol64:
専門家が自分で決めることだ。でも、実は私はあなたの選択肢の方が好きなんだ。私は最善の方法について話しているのではなく、その必要性について話しているんだ。 反転させる必要はない。必要ない。
誰もこのイベントをオフにしないのであれば、毎秒スイッチがオンになっているかどうかをチェックする必要はありません。あるExpert Advisorでは特にイベントを無効にし、別のExpert Advisorではそのプロパティを毎秒監視しますが、まったく何も書かない方が簡単で安全です。
 
C-4:
つまり、あなたの例では、Expert AdvisorはインジケータがEVENT_MOVE_MOUSEイベントを受信する必要がないと判断し、終了前にインジケータを無効にしました。Expert Advisorはどのような根拠に基づいて、他のインジケーターに何が必要で何が不要かを決定するのでしょうか?自分で決めすぎではないか?

おそらく、他のすべてのプログラムも同じ原則に基づいて配置されており、必要であれば自らスイッチをオンにするものと思われます。

しかし、スイッチを切ることがそんなに重要だろうか?このオン/オフの切り替えは1つのチャートにしか適用されない。オンにするだけで、オフにしないのであれば、大きな問題にはならないと思う。

そんなことで悩む人はほとんどいないでしょう。だから、問題を避けるために、スイッチをオンにするだけで、オフにはしない。そしてまた、誰かがスイッチを切る。だから、タイマーで監視し、必要ならスイッチを入れるが、スイッチを切らないようにすればいい。

 
C-4:
だから、誰もこのイベントのスイッチを切らないとしたら......。
知る由もない。
 
C-4:
つまり、誰もこのイベントを無効にしないのであれば、有効になっているかどうかを毎秒チェックする必要はない。あるExpert Advisorでは特にイベントを無効にし、別のExpert Advisorではそのプロパティを毎秒監視する。

必ずしも毎秒とは限りません。別のイベント(すでに議論された)で代替手段があります。私がここで どうやったか、もっといい例を挙げてください。エキスパートアドバイザーはこのイベントを必要とするが、インジケーターは必要としないという条件から。その方がわかりやすいでしょう。

追伸: 訂正します。間違えました。))あなたの変形はもっと正しくありません。全く合っていません。だから、上の条件に基づいた例を挙げた方がいい。