エラーコードを0に再設定 ResetLastError 関数

関数

共通関数

ResetLastError 関数

この関数は、_LastError(システム変数) および GetLastError関数で出力されるエラーコードを0(ゼロ)にリセットします。0は、エラーが無いことを意味します。

データ型と構成・戻り値

void ResetLastError();

戻り値は無し。

引数 [0]

引数無し。

使用例

ResetLastError関数でエラーコードを0に再設定

OrderSend関数を使って発生したエラーコードを確認しています。使用例での通貨ペアはUSDJPYです。
①は、注文ロット数を最低0.01ロットのところ0.001ロットにしているためエラーが発生します。
②は、取引通貨ペアで “USDJPY” にしないといけないところ “USD/JPY” にしているためエラーが発生します。

今回の場合、エラーは発生していますが、ResetLastError関数によって0(ゼロ)に再設定されるようにしています。

コード

// ResetLastError関数のエラーコード取得例
#property strict
#property strict
void OnInit() {
int ticket1 = OrderSend(Symbol(), OP_BUYLIMIT, 0.001, 100, 30, 95, 105, "Buy", 1002, 0, clrNONE);
Print("0設定前①:", _LastError); //0設定前①:131
ResetLastError();
Print("0設定後①:", _LastError); //0設定後①:0

int ticket2 = OrderSend("USD/JPY", OP_BUYLIMIT, 0.01, 100, 30, 95, 105, "Buy", 1003, 0, clrNONE);
Print("0設定前②:", _LastError); //0設定前②:4106
ResetLastError();
Print("0設定後②:", _LastError); //0設定後②:0
}

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

結果

以下、エキスパートタブに出力されるエラーコードです。ResetLastError関数によって0に再設定されていることが分かります。


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

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

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