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

 
C-4:
MT5では、チャートのプロパティは非同期で更新されます。つまり、プロパティを設定したからといって、端末がすぐにそれを読み取るわけではありません。ChartRedraw()関数を 使用して、すべてのプロパティをターミナルに再読み込みさせます。また、ChartGet...ObjectGet関数も使えますが、この場合もプロパティは再読み込みされます。
この情報はどこにもありませんでした。私はそれを見つけ、解決策を見つけました。
 
komposter:
この情報はどこにもなかった。偶然見つけて、解決策を見つけた。

それは何ですか?チャートの操作」セクションの冒頭にある:

チャートを操作するための関数。チャートに関するすべての操作は、Expert Advisorとスクリプトにのみ適用されます。

チャートのプロパティを設定する関数は、実際にはそれを変更するコマンドを送信するために使用されます。 これらの関数が正常に実行された場合、そのコマンドはチャートの一般的なイベント・キューに含まれます。グラフの変更は、指定されたグラフのイベント・キューの処理中に行われます。

このため、これらの関数を呼び出した後、すぐにグラフが更新されることを期待してはいけません。 一般に、チャートの更新は、新しい気配値の到着、チャート・ウィンドウ・サイズの変更などの変更イベントによって、端末によって自動的に行われます。強制的にチャートの外観を更新するには、ChartRedraw() コマンドを使用してチャートを再描画します。

 
komposter:
この情報はどこにもなかった。偶然見つけて、解決策を見つけた。
もちろん、この情報はどこにもないのだから(あることが判明した、上記参照:))。私自身、サービスデスクに相談するまで、この問題に悩まされていた。そこで彼らは、チャート上のオブジェクトのプロパティの変更は 非同期的に起こると教えてくれました。そして、あなたの例から判断すると、それはチャート自体のプロパティに関するものです。
 
Rosh:

具体的にはどのようなことですか?このセクションの冒頭の「チャートによるオペレーション」だ:

それがないとは言っていないよ。ありがとう。

マウス・イベント・トラッキング・フラグのようなチャート・プロパティを変更したときにCHART_CHANGEイベントを発生させるという私の提案はどうですか?もしかしたら、それができるかもしれません。

 
C-4:
もちろん、この情報はどこにも公開されていないから だ(公開されていることが判明した。)私自身もこの問題に悩まされ、サービスデスクに相談した。そこで彼らは、チャート上のオブジェクトのプロパティの変更は 非同期的に起こると教えてくれました。そして、あなたの例から判断すると、それはチャート自体のプロパティに関するものです。

詳しくはグラフィック・オブジェクトの セクションを参照してください:

指定されたチャートに関連するグラフィカル・オブジェクトを操作するために設計された関数群。

グラフィカル・オブジェクトのプロパティを指定する関数や、ObjectCreate() オブジェクトの作成、ObjectMove()オブジェクトの チャート上への移動などの操作は、実際にはチャートへのコマンド送信に使用されます。 これらの関数が正常に実行されると、そのコマンドはチャートの一般的なイベント・キューに含まれます。グラフィカル・オブジェクトのプロパティの視覚的な変更は、指定されたチャートのイベント・キューの処理中に実行されます。

このため、これらの関数を呼び出した後、すぐにグラフィカル・オブジェクトが視覚的に更新されることは期待しないでください。 一般に、チャート上のグラフィカル・オブジェクトの更新は、新しい気配値の到着、チャート・ウィンドウ・サイズの変更などの変更イベントによって、端末によって自動的に実行されます。 グラフィカル・オブジェクトを強制的に更新するには、ChartRedraw() コマンドを使用してチャートを再描画します。

 
Rosh:

詳しくはグラフィック・オブジェクトの セクションで:

オブジェクトはわかりやすく、使い慣れたものですが、グラフのプロパティとは違うものを期待していました。

私の提案は繰り返さない方がいいのでしょうか?それとも、サービスデスクに相談すべきでしょうか?

 
素晴らしい記事をありがとう。
 
MetaQuotes Software Corp.:

新しい記事「 MQL5細則:インジケーター・サブウィンドウのコントロール - ボタン」を公開しました:

著者:Anatoli Kazharsk

とても素晴らしいチュートリアルです!

 

アナトーリ、

あなたのMQL5コミュニティへの貢献に感謝します。 あなたの例のおかげで、私自身のコードの開発に数ヶ月前進することができました。 改めて、ありがとうございます。

この「インジケーター」をOpen Long、Open Short、Close All、Set Trailing Stopの各ボタンに使用する必要があります。 私の問題は、EAと対話する必要があることです。

1) EA内でこれらの機能に アクセスする。

2) pSAR、CCI、MACD、またはその他のインジケータがトリガーしたときに、「Open Long」ボタンを点滅させてEAの推奨を得ることです。

そこで質問です:EAをインジケーターボタンと通信させ、インジケーターボタンをEAとインターフェースさせるにはどうすればよいでしょうか?

よろしくお願いします、

サイファーピップス

 
CipherPips:

ありがとう!

そのバージョンの方がお好きだと思います:グラフィカル・インターフェース I:ライブラリ構造の準備 (第1章)

このシリーズの続きです。 詳細な例がたくさんあります。