7

PHP インターフェイスを使用してサーバーにデータを送信するために、非同期インターネット リクエストを作成できる MetaTrader 用のカスタム インジケーターを構築できるかどうかを確認しようとしています。

これらのリクエストは、ウェブサーバーが処理するのに時間がかかる可能性があるため、同期的に実行された場合、インジケーターが新しいティック データを継続的に更新するのをブロックするのではないかと心配しています。

MT4 で使用できる非同期ライブラリはありますか?

4

1 に答える 1

11

はい、あります

MT4 は、プラットフォーム間およびプロセス間メッセージング ライブラリの既製のバインディングを直接使用できZeroMQますnanomsg

前者を数年間使用してきたMQL4プロセスは、同期されていない (つまり、aMarketEVENT到着とは無関係にquote、または " " とも呼ばれますtick) ExpertAdvisor->scriptまたはscript->scriptプロセス間通信ソリューションを形成し、強力な拡張機能を構築できます。プロの取引のための GUI サービスと、ソフト リアルタイム システムおよび低強度 HFT クラスタリングのためのその他の多くの機能。

一方、MT4 EAこの同じメッセージング テクノロジ プラットフォームを使用して、いくつかの不可欠なサービスを装備することもできます。

  1. keyboard実行中の EA に CLI に似たインターフェース用のインタラクティブなリモートを追加します。
  2. file-IOHFT サービス用のリモート (ノンブロッキング (!!) ) を追加します。
  3. syslog(ノンブロッキング)ロギング用のリモート/集中サービスを追加します
  4. 高度な取引のためのリモート/クラスター化されたGPU-basedAI/ML リアルタイム モデルを追加する

のたベネ

設計/アーキテクチャの観点から、MT4インジケーター スレッドには注意すべき特定の制限があります。

リモート WebServer 上の プロセスへの一般的なPOSTに基づく発行は、確実に数十ミリ秒以上かかるため、上記の正式なアーキテクチャでは避けられない問題が発生します。php

jasuk.neumannova@gmail.com?Subject=StackOverflow-HFT-27078423(MQL4)

むしろ、処理のすべての埋め込み部分を最小限に抑えて、MT4.CustomIndicator処理が次のaMarketEVENT到着に遅れないようにし、計算された値の同期のずれを防ぐ必要があります。

これは、コア以外のすべての機能をコードの範囲の「外側」にディスパッチし(プロセス間通信フレームワークを使用)、残りのすべてのロジックを の外側の別のスレッドで解決することによって実現できます。後処理は問題の最小のものであり、ハンドシェークと値の更新と再送信ロジックは、非常に脆弱なスレッド同期性からのオフロードの焦点です(この問題がますます危険になることが観察された可能性があります。最近のビルド. 多くの堅牢な拡張 GUI ソリューションは、7xx 以降のビルドで途切れ途切れの応答性に悩まされ始め、UI の堅牢性と高負荷下でのスムーズな UI 応答性を取り戻すために、コアのリアルタイム制御ループをわずかに調整する必要がありました。MT4.CustomIndicatorZeroMQMT4MT4

この MQL4 または HFT またはその他の主題に関する詳細については、お気軽にお問い合わせください。

于 2014-11-30T17:02:54.837 に答える