#include <ファイル>

#include MQL4基礎

プリプロセッサ

#include <ファイル>

「#include」は includeインクルードファイルをシステムに組み込ませる時に使います。「#include」はプログラム内のどこにでも配置できますが、通常はソースコードの先頭に配置します。

データ型と構成・戻り値

#include <***.mqh>

「***.mqh」は includeインクルード ファイルです。「#include」によってファイルの内容がプログラムに組み込まれます。

コンパイルして作成されるEAの ex4ファイルには「#include」によって mqhファイルが組み込まれるのでEAを配布する時は ex4ファイルのみで大丈夫です。別途 mqhファイルを配布する必要はありません。

使用例

ErrorDescription関数によるエラー内容の取得

ErrorDescription関数は includeファイルである stdlib.mqh に定義されている関数になります。このファイルを includeしないとコード中にErrorDescription関数がある場合、コンパイルエラーになります。

例では、OrderSend関数を使って発生したエラー内容をErrorDescription関数を使って確認しています。使用例での通貨ペアは USDJPYです。

 ①は、問題がない注文です。

 ②は、注文ロット数を最低 0.01ロットのところ 0.001ロットにしているためエラーが発生します。

 ③は、取引通貨ペアで “USDJPY” にしないといけないところ “USD/JPY” にしているためエラーが発生します。

 ④~⑥は、includeファイルである「stderror.mqh」で定義したエラー内容に対するエラーコードを表示させます。しかし、このファイルを#includeしなくてもエラーコードは取得できるようです。

 includeファイルの保存先はこちらを参考にしてください。

コード

// #includeによるエラー内容の取得例
#property strict

#include <stdlib.mqh>
//#include <stderror.mqh>

void OnInit() {
int ticket1 = OrderSend(Symbol(), OP_BUYLIMIT, 0.01, 50, 30, 45, 105, "Buy", 1001, 0, clrNONE);   //①エラーコード:0
Print("エラー内容①:", ErrorDescription(GetLastError()));

int ticket2 = OrderSend(Symbol(), OP_BUYLIMIT, 0.001, 100, 30, 95, 105, "Buy", 1002, 0, clrNONE); //②エラーコード:131
Print("エラー内容②:", ErrorDescription(GetLastError()));

int ticket3 = OrderSend("USD/JPY", OP_BUYLIMIT, 0.01, 100, 30, 95, 105, "Buy", 1003, 0, clrNONE); //③エラーコード:4106
Print("エラー内容③:", ErrorDescription(GetLastError()));

Print("エラーコード④:", ERR_NO_ERROR);             //④エラーコード:0
Print("エラーコード⑤:", ERR_INVALID_TRADE_VOLUME); //⑤エラーコード:131
Print("エラーコード⑥:", ERR_UNKNOWN_SYMBOL);       //⑥エラーコード:4106
}

このコードをコンパイルして実行するのに、自動売買を許可しておく必要があります。
自動売買を許可する方法はこちら、コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

 以下、エキスパートタブに出力されるエラーコードです。

今回出力されたエラーの内容です。その他の取得したコードのエラー内容はこちらで確認ができます。

コードID説明
0ERR_NO_ERRORNo error returned
エラーはありません。
131ERR_INVALID_TRADE_VOLUMEInvalid trade volume
無効な取引量です。
4106ERR_UNKNOWN_SYMBOLUnknown symbol
不明な通貨ペア。

タイトルとURLをコピーしました