異なるターミナルが 1 件の dll で処理をするには、それはシステムディレクトリ
windows\system32に入っている必要があります。1つのターミナルの複数 EA が1件同一の dll
コピーをダウンロードすることが重要です。すべては1つのプロセスで処理し、それはターミナル(terminal.exe)であるからです。それは1つの
同じアドレス空間を持つことを意味します。すなわち、同一の変数を処理するのです。複数 EA を持つ1つのターミナルには全 EA に対して自分の
dll コピーと同じ変数、発表された内部 dll
があり、別のターミナルは別の変数を持つコピーがあります。そのため、ターミナルは別ターミナルの変数にはアクセスしません。
われわれは、別のターミナルからのデータが収集できるシングルを作成したいと思います。データフィード1つの異なるプロセスの同期処理を行う方法は複数あ
ります。これはファイルを介して実装できますが、数多くのターミナルや EA
がある場合は、処理速度の問題と共にパスを指定する問題にまた出会うことになります。最善の解決策は分割可能なコアメモリです。それで作業するには十分な
注意と使用されるオペレーションシステム(われわれの場合は Windows
です)の機能に関する知識が必要ですが、可能性は無限です。共有メモリの特定ブロックへ連続してアクセスできるようにするには、プログラムセマフォの特別
なメカニズムが使用されます。
新しい記事 効率的な Expert Advisor 操作のための仲介会社の自動選択 はパブリッシュされました:
効率的な Expert Advisor 操作のために適切な仲介会社を見つける必要がある、ということは秘密ではありません。本稿ではこの検索のシステム的アプローチを説明します。みなさんは異なるターミナルで作業しながら dll によってプログラムを作成する手順に詳しくなることでしょう。
異なるターミナルが 1 件の dll で処理をするには、それはシステムディレクトリ windows\system32に入っている必要があります。1つのターミナルの複数 EA が1件同一の dll コピーをダウンロードすることが重要です。すべては1つのプロセスで処理し、それはターミナル(terminal.exe)であるからです。それは1つの 同じアドレス空間を持つことを意味します。すなわち、同一の変数を処理するのです。複数 EA を持つ1つのターミナルには全 EA に対して自分の dll コピーと同じ変数、発表された内部 dll があり、別のターミナルは別の変数を持つコピーがあります。そのため、ターミナルは別ターミナルの変数にはアクセスしません。
われわれは、別のターミナルからのデータが収集できるシングルを作成したいと思います。データフィード1つの異なるプロセスの同期処理を行う方法は複数あ ります。これはファイルを介して実装できますが、数多くのターミナルや EA がある場合は、処理速度の問題と共にパスを指定する問題にまた出会うことになります。最善の解決策は分割可能なコアメモリです。それで作業するには十分な 注意と使用されるオペレーションシステム(われわれの場合は Windows です)の機能に関する知識が必要ですが、可能性は無限です。共有メモリの特定ブロックへ連続してアクセスできるようにするには、プログラムセマフォの特別 なメカニズムが使用されます。
理論の結論:dll の EA が共有メモリにデータを書き込むことで、アプリケーション-それを「モニター」と呼びます、では、メモリからデータを読み出し、表示し、必要な統計計算を 行います。MetaTrader 4 が初めて DLL を呼ぶとき、オペレーションシステムはこの DLL のコピーを各ターミナル向けに作成します。なぜなら各ターミナルは個別のプロセスだからです。以下の画像は処理スキームです
作者: Shashev Sergei