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 | 説明 |
---|---|---|
0 | ERR_NO_ERROR | No error returned エラーはありません。 |
131 | ERR_INVALID_TRADE_VOLUME | Invalid trade volume 無効な取引量です。 |
4106 | ERR_UNKNOWN_SYMBOL | Unknown symbol 不明な通貨ペア。 |