私たちのファンページに参加してください
メモリマッピング - MetaTrader 5のためのライブラリ
- ビュー:
- 1117
- 評価:
- パブリッシュ済み:
- 2016.06.10 12:39
- アップデート済み:
- 2016.11.22 07:34
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
このプロジェクト (Visual C++ 2010) はCMemMapApi и CMemMapFileの2クラスを含みます。
これらはメモリマップファイルを扱うために設計されました。下記が可能です。
- メモリ内でファイルを作成する。
- メモリマップされたファイルにデータを書き、それからデータを読み込む。
- それはMetaTrader 4とМetaТrader5などのアプリケーション間でデータを交換する機会を提供します。
主なアプリケーションは、データの交換です。
- 一台のPC上での複数の端末のための取引のコピー
- 裁定エキスパートアドバイザーなどのための相場データ交換
メモリマップファイルは、エキスパートアドバイザーの一時的なデータサーブのために使用することができます。
CMemMapApiクラスは単なるWinApi関数のラッパーです。これがCMemMapFileとCMemMapApiの違いです。
CMemMapFileはファイル名、ファイルハンドルを提供し、ファイルサイズのチェックを制御するので有用です。 これとは対照的に、CMemMapApi クラスはいくつかのメモリマップファイルを扱うことができます。
現在のプロジェクトではエクスポートされたDLL関数は、いくつかのメモリマップファイルを操作するためにCMemMapApiで構成されています。
CMemMapFileクラスは、他のC++プロジェクト内のメモリマップファイルを操作するために設計されています。
//--- メモリマップファイルを開くまたは作成し、値を返す。 int MemOpen(string path,int size,int mode,int &err[]); //--- メモリマップファイルを閉じる void MemClose(int hmem); //--- メモryマップファイルのサイズを増やす int MemGrows(int hmem,string path,int newsize,int &err[]); //--- メモリマップファイルのサイズを返す int MemGetSize(int hmem, int &err[]); //--- メモリマップファイルのサイズを設定する int MemSetSize(int hmem, int size, int &err[]); //--- メモリマップファイルの位置posから始まってVベクトル(sizeバイト)を書き込む int MemWrite(int hmem,int &v[], int pos, int size, int &err[]); //--- メモリマップファイルの位置posから始まってVベクトル(sizeバイト)を読む int MemRead(int hmem, int &v[], int pos, int size, int &err[]); //--- メモリマップファイルの位置posから始まって文字列(sizeバイト)を書き込む int MemWriteStr(int hmem, string buf, int pos, int size, int &err[]); //--- メモリマップファイルの位置posから始まって文字列(sizeバイト)を読む int MemReadStr(int hmem, string buf, int pos, int &size, int &err[]);
DLLの使用例: 相場モニタリング(メモリマップファイル)
12.03. 2012:MemWriteStrのエラーの修正
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/816
このスクリプトは、ポジションのストップアウト価格(ポジションはこの価格でブローカーによって決済されます)とフリーマージンがマイナスになる際の価格(ロックアウト価格)計算します。
ピボットポイントクラシックピボットポイント指標はピボットポイントとすべてのデータポイントのための3つのレジスタンスとサポートのレベルを描画します。
このエキスパートアドバイザーは、ファイルマッピング関数を使用するためのメモリマッピングDLLの使用例です。この例では、エキスパートアドバイザーは、仮想(メモリマップされた)ファイルを作成し銘柄の相場の更新を始めます。この方法を使用すると、エキスパートアドバイザーは、共通のメモリマップファイルを使用して(例えば相場の)データを交換することができます。
DLLなしでのファイルマッピングメモリマッピングファイル操作のDLL (C++からMQL5に変換された) 。