importを利用して外部ファイルの関数を使用する

MQL4プログラミングでは、Librariesフォルダ内に作成したMQL4ファイルやDLLファイル内で作成された関数を呼び出して使用することが可能です。
開発を行う上で頻繁に利用する処理(例えば発注処理など)は外部ファイルとして作成しておき、新しいEAを開発する毎に呼び出して使用することで開発の手間を減らすことができます。

外部ファイルの関数を行うには「#import」によって対象となる関数を読み込みます。
プログラムの上部(#propertyの下など)に、以下のような形式で記述します。

#import "ファイル名"
関数の型 関数名(引数);
#import


実際の使用例は以下のようになります。
MT4に標準で存在している「stdlib.ex4」からErrorDescription関数を読み込む例です。

#import "stdlib.ex4"
string ErrorDescription(int error_code);
#import


「#import」で囲まれたブロックの中に関数を追加することで、一度に複数の関数を呼び出すことも可能です。

#import "stdlib.ex4"
string ErrorDescription(int error_code);
int RGB(int red_value,int green_value,int blue_value);
#import


呼び出す関数の引数名は省略し、引数の型名だけで記述することもできます。

#import "stdlib.ex4"
string ErrorDescription(int);
#import



importを使用した例です。
以下のEAをチャートに入れることで、stdlib.ex4のErrorDescription関数が実行されていることが確認できます。

#property strict

#import "stdlib.ex4"
string ErrorDescription(int error_code);
#import

extern int error = 1;

int OnInit(){
Comment(ErrorDescription(error));
return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason){
Comment("");
}

void OnTick(){

}


ファイルはデータフォルダ内のLibrariesフォルダ内に保存されている必要があります。
もし標準で搭載されていない、オリジナルのライブラリファイルやDLLファイルをインポートして作成したEA・インジケーターを販売する場合には、これらのライブラリやDLLファイルも同梱して配布する必要があります。
TwitterでシェアFacebookでシェアGoogle+でシェアはてなブックマークに追加

TOPへ