グラフィカルモードでMQLのGUIを作成する。 - ページ 13

 
Алексей Барбашин:

マキシム、このソリューションはどのように優れているのですか?結局、フラグの状態を確認するためには、MQLでも定期的に確認する必要があります。つまり、どこを見ても、何かの状態の変化を常に監視していないと、データを拾うタイミングがわからないということがわかったのです。そして、この断片はdll自体に格納され、そこでチェックされるかもしれません - これは私がやっていることです。この例では、フラグの状態を返すためにDLLを暗黙のうちに呼び出して いますね。

フラッグのチェックは非常に高速な操作です。まったく最速のものという意味です :-)

また、この例では暗黙の呼び出しはありません。

InitDLL は入力として int *flags を受け取り、それをどこかに保存し、何かをカウントし、完了時に atomic_inc(flags) を実行するトレースを生成しました。

アドバイザーはflags[0]をチェックするだけでよい。

 
確認することです。そこが重要なポイントです。私が提案しているのは、「タスク」が完了したときに、ツールに通知することです。つまり、チェックに一定のリソースを費やす必要がないようにするためです。通知が来た--データを手に入れたのですね。
 
Maxim Kuznetsov:

フラッグのチェックは非常に高速な操作です。つまり、まったく最速なのです :-)

また、この例では暗黙の呼び出しはありません。

InitDLL は入力で int *flags を受け取り、それをどこかに保存し、何かをカウントするトレースを生成し、完了時に atomic_inc(flags) を作成します。

アドバイザーはflags[0]をチェックするだけでよい。

しかし、フラグをチェックするだけでは何もできない。スレッド間同期が必要で、バリア、アトミック、ミューテックスのどれを取るか、もちろんすべてのCPUに対応できるわけではない。


アレクセイ・バーバシン
まさにチェックするために。そこが重要なポイントです。そして、その「タスク」が完了したことをツールに警告することを提案します。つまり、チェックに一定のリソースを費やす必要がないのです。通知が来た--データを手に入れたのですね。
また、それらのミューテックスはどのように実装されているのでしょうか?私が知る限り、すべてチェックとフラグの設定を通してです。どうせなら、μlスレッドのどこかで何らかのフラグを確認する必要がある。
 
Maxim Kuznetsov:

フラッグのチェックは非常に高速な操作です。つまり、まったく最速なのです :-)

また、この例では暗黙の呼び出しはありません。

InitDLL は入力として int *flags を受け取り、それをどこかに保存し、何かをカウントするトレースを生成し、完了時に atomic_inc(flags) を実行します。

EAはflags[0]をチェックするだけでよい。

マックス そうですね、とりあえずコールバックの状況はクリアしています。 今あるものを使って、開発者がコールバック機能を追加してくれるのを待つことにしましょう。

GUIの問題に話を戻したい。描かれているものは関係ない。例えば、私はSharpで作り、あなたはTclで作る。

フォームが単体で存在する限りは、全く問題ありません。ただ、フォームが勝手に飛んでいくのではなく、適切なチャートにバインドされるようにしたいのが本音です。

作成したフォームの親を設定すると、必須チャートに配置されます。しかし、ウィンドウとチャートが「合体」してしまい、チャートが「接着」された形を描くだけになってしまうという問題があります。

この問題は、まだMTの開発者の行動範囲外にあるので、とりあえず解決してみることをお勧めします。

GUIをチャートに貼り付けてみましたか?

 
pavlick_:

しかし、フラグチェックだけではダメで、スレッド間同期、バリア、アトミック、ミューテックスなどが必要で、もちろんすべてのCPUに関係するわけではありません。


また、各種ミューテックスはどのように実装されているのでしょうか?私が知る限り、すべてチェックとフラグの設定を通してです。どうせなら、μlスレッドのどこかで何らかのフラグを確認する必要がある。

全くその通りです。しかし、例えばOnChartEventで 動作するように、非常に低い、アプリケーションレベルでそれを実現させましょう。つまり、今は明示的にプログラム(チェック)していますが、Renatが言ったように、すべてをアプリケーションレベルに移行することも可能です(彼はいくつかのバリエーションを提案しました)。

 
Maxim Kuznetsov:

私はダウンしています :-) 寄付 - MSに送信することができます

066cd265-e2fe-468e-9492-4228e9759e38
8e1040ba-dc3e-4e2a-9208-e3ea8da9ad05
03dcd7cd-4b9b-4ff7-bff0-e0839a0f9d8b
d69f2c8c-de51-4557-8188-4ebb870da7da
a79a8cc6-f785-4268-bc4e-2deda0f1ecd0
f4f59f52-1da8-4f74-a71e-9aec1992674d
85608797-6015-456d-af64-ad7890120372
9289991a-e287-47fb-b595-6d719c1b7dbd
63d3b953-3229-4045-a82a-fc9e7795bb01
c75c4e0f-8320-42df-943c-9aada54b60eb

があれば、見つけられるかもしれませんね。

ありがとう、合格、1ポンドゲット!

 
Alexey Volchanskiy:

ありがとう、合格、1ポンドゲット!

だから、スキャルパーより儲かるんです!1セントで小売りをやってくれるなら、1ドル/10セントで卸売りをやってもいいんです。
 
Maxim Kuznetsov:
だから、スキャルパーより儲かるんです!1セントで小売する準備ができたら、1ドル/10セントでまとめて売るんです。

地獄のような誘惑。これで中古GUID市場も制覇だ!そして独占企業となり、ビットコインのように人工的な熱狂を作り出し、一攫千金を狙うのだ!

 
Алексей Барбашин:

今あるものを使って、開発者がコールバック機能を追加してくれるのを待つことにします。

GUIの問題に話を戻したい。描かれているものは関係ない。例えば、私はSharpで作り、あなたはTclで作る。

フォームが単体で存在する限りは、全く問題ありません。ただ、フォームが勝手に飛んでいくのではなく、適切なチャートにバインド されるようにしたいのが本音 です。

作成したフォームの親を設定すると、必須チャートに配置 されます。しかし、ウィンドウとチャートが「合体」してしまい、チャートが「接着」された形を描くだけになってしまうという問題があります。

この問題は、まだMTの開発者の行動範囲外にあるので、とりあえず解決してみることをお勧めします。

GUIをチャートに貼り付けてみましたか?

フォームとチャートをつなげる必要性がない。

チャートに直結する運用グラフィック(各種ライン、キャプション、インスクリプションなど)がありますが、これは当然MTツールで行います。

しかし、設定、レポート、統計などの管理GUIはあります。かなり大きいので、ユーザーに対する犯罪です :-)

フォームをチャートの上に配置するだけです。 ウィンドウマネージャからフォームを削除し、チャートのジオメトリとフォーカスの変化を追跡する必要があります。
そんな「手描きの夕日」:-)少なくとも、MetaTraderの中枢に入り込むことはなく、そのウィンドウに新たな悪寒やフックを押し付けることもない-つまり、礼儀正しく振舞うことができる。

DLLから呼び出されるGUIは、それを呼び出すExpert AdvisorやIndicatorが、わずかなくしゃみで定期的に再起動するという、最も不快な機能を備えています。それが、フォームの再開につながり、汚い言葉の滝となる...。
もしかしたら、長く発表されている「サービス」(と呼ばれるもの)には、この欠点がないのかもしれません。

更新/フォームの配置について - チャートにRectLabelを置き、chart-eventsにcodinatesの変化を追跡する。変化するとき、その形を厳密に上に置く:-)タブを変更するとき、ウィンドウを最小化するとき、時間内にフォームを隠すために、少しタンバリンが必要です
 
Alexey Volchanskiy:

全く説明になっていませんね。MT*からシャープパネルへのデータの取り込みはどのように行うのですか?

私は、タイムドポーリングによるメモリーマッピングでフィードバックを行っています。パネルは異なる設定と遅い計算結果しか伝えなかった

外部TCがあるので、ターミナルへのGUIフィードバックは必要ない。