エラーコードを取得 _LastError 変数

定義済変数

システム変数

_LastError 変数

_LastError変数は、MQL4プログラムの実行中に発生した直近のエラーのコードを取得します。取得した値は、 ResetLastError関数によって0(ゼロ)にリセットできます。

直近のエラーのコードを取得するには、GetLastError関数を使用することもできます。

データ型と構成・戻り値

int _LastError;

戻り値は、直近のエラーコード(ランタイムエラーコード)が取得されます。

使用例

_LastError変数によるエラーコードの取得例

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

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

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

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

コード

// _LastError(システム変数)のエラーコード取得例
#property strict
void OnInit() {
int ticket1 = OrderSend(Symbol(), OP_BUYLIMIT, 0.01, 50, 30, 45, 105, "Buy", 1001, 0, clrNONE);   //①エラーコード:0
Print("エラーコード①:", _LastError);

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

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

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

結果

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


自動売買を許可していない場合は、以下のようになります。


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

コードID説明
0ERR_NO_ERRORNo error returned
エラーはありません。
131ERR_INVALID_TRADE_VOLUMEInvalid trade volume
無効な取引量です。
4106ERR_UNKNOWN_SYMBOLUnknown symbol
不明な通貨ペア。
4109ERR_TRADE_NOT_ALLOWEDTrade is not allowed. Enable checkbox “Allow live trading” in the Expert Advisor properties
取引は許可されていません。エキスパートアドバイザーのプロパティで「自動売買を許可する」チェックボックスをチェックする必要があります。
タイトルとURLをコピーしました