mql5言語の特徴、微妙なニュアンスとテクニック - ページ 219

 
Alexey Viktorov(アレクセイ ビクトロフ#:

chart_is_maximized

Chart_is_maximized

かっせん

chart_is_minimized

Chart_is_minimized チャートが最小化される。

かっせん

ありがとうございます、これからやってみます。
また、CHART_WINDOW_IS_VISIBLEを 見つけました。でも、以前確認したことがあり、ニュアンスが違っていたような気がします。

 
Nikolai Semko #:

ありがとうございます、これから実験してみます。
また、CHART_WINDOW_IS_VISIBLEを 見つけました。でも、以前確認したところ、ニュアンスが違っていたような気がします。

はい、あなたのバリアントは、CHART_WINDOW_IS_VISIBLE とは異なり、動作します。
いつもありがとうございます。

そのため、CHART_BRING_TO_TOPを使用する代わりに、この方法でビットマップ形成時のチャートの可視性を制御することは理にかなっています。

ただし、user32.dll を使用しない場合、すべてのウィンドウを常に監視する必要があるため、このコントロールは非常に高価です。
しかし、明らかに、すべてのウィンドウを監視するのは、自身のチャート・ウィンドウがフォーカスされていないときだけにすべきです (ChartGetInteger(0, CHART_BRING_TO_TOP) == false)。
 
Nikolai Semko #:

しかし、明らかに、自身のチャート・ウィンドウにフォーカスがないときのみ、すべてのウィンドウをモニターすべきです(ChartGetInteger(0, CHART_BRING_TO_TOP) == false)。

最小化されたウィンドウは、複数のウィンドウが存在する場合でもtrueを返すことがあります。

 
fxsaber #:

最小化されたウィンドウは、複数のウィンドウが存在する場合でもtrueを返すことがあります。

CHART_BRING_TO_TOP 関数なのか IsInvisible関数 なのか?

 
Nikolai Semko #:


そのため、CHART_BRING_TO_TOPを使用する代わりに、この方法でビットマップ形成時のチャートの可視性を制御することは理にかなっています。

HHH ただし、user32.dll を使用しないと、すべてのウィンドウを常に監視する必要があるため、監視コストがかかりすぎます。
しかし、すべてのウィンドウを監視するのは、自分自身のチャートウィンドウがフォーカスされていないときだけにするのが当然です (ChartGetInteger(0, CHART_BRING_TO_TOP) == false)。


Expert Advisor では、ChartGet 関数がより速く実行されるため、正当化されます。他のウィンドウの状態を監視するよりも、キャンバスを再描画した方が早いからです。
IMHO

繰り返しになりますが、全てはChatGet関数の遅さに起因しています :(
 
Nikolai Semko #:

CHART_BRING_TO_TOP と IsInvisible のどちらを使用するのですか?

chart_bring_to_top。

 
Nikolai Semko #:

はい、これはEAのChartGet機能がより高速であるため、EAにおいてのみ正当化できます。

モニターした時は遅かったです。

わざわざインジケータを使う意味はない。キャンバスの再描画は、他のウィンドウをモニターするよりも高速に行えます。
IMHO

計算の厳しさによる。HFTでは、可視化をできるだけ少なくすることが非常に重要です。だから、IsInvisible2を使っているのです。

 
fxsaber #:

chart_bring_to_top。

このモードでは、ウィンドウの大きさが最小化されていないかのように見えるのが不思議です。
ただし、これはアクティブウィンドウが最小化されるごくまれなケースです。そう、この場合は無意味に空回りしてしまうのです。

 
Nikolai Semko #:

ただし、これはアクティブウィンドウが最小化 されるごくまれなケースです。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

MT5とスピードの関係

fxsaber, 2020.09.30 21:42

今はパフォーマンス重視のボットも、ターミナルのCPUが15%になるように動かしていますね。そして、今度は脱帽です!

  • マーケットウォッチを閉じる (CTRL+M) - 取引されたシンボルだけが表示されます。
  • 現在のポジションでテーブルを閉じる(CTRL+T)。
  • すべてのグラフを最小化する。

ほら、端末CPU2.5%!VPSを アンロードしてください。他に有効なお勧めがあれば、教えてください。


開発者の皆様、アルゴトレーディングのために端末を最小資源消費モードに切り替える機能をお願いします。

バトルアドバイザーの最も普及した運用形態。
 
fxsaber #:
戦闘用EAとして最も一般的な動作モード。

は、戦闘モードでは、最小化せずにすべての無意味なグラフィックをオフにする必要があることを意味します。ウィンドウが表示されたままでアクティブでない場合、グラフィックスをフリーズさせる。
そして、マウスが1分間など非アクティブになったときに、自動的にすべてのグラフィックスをオフにして削除する方が、簡単でよいと思われます。マウスがアクティブになるとすぐに - グラフィックスが再開されます。

理由: