(‘both’, ‘MQL4 / MQL5 両対応’)安全対策
GetLastError直前の失敗の理由番号を調べる
OrderSendやFileOpenなどが失敗したとき、なぜ失敗したかを表すエラー番号を返す。失敗を判定した直後に呼ぶのが鉄則。
1書式
int GetLastError();
書式はMQL4・MQL5で同じ。番号の意味は関数によって違う。
2引数
無し。
3戻り値
直前に起きたエラーの番号。エラーが無ければ0。
4使用例
int ticket = OrderSend(Symbol(), OP_BUY, 0.10, Ask, 5, sl, tp);
if(ticket < 0)
Print("失敗しました err=", GetLastError());
MetaEditorでコンパイル0エラー・0警告を確認済み。
6よくある罠
⚠ 実務で踏んだもの
- この関数は「直前に起きたエラー」しか覚えていない。失敗したその場ですぐ呼ばないと、別の処理のエラーに上書きされてしまう。
- エラーが起きても、次に何かが成功するまで番号は残ったまま。「まだ古い番号が残っているだけ」を新しい失敗と勘違いしないよう、判定の直前に
ResetLastError()で0に戻しておくとより安全。
7関連する関数
MORNING BRIEF平日 毎朝7時までに更新
今日はどこを見ればいいか。
ドル円とユーロドルの主要ライン・予想高値安値を、平日の朝に図1枚にまとめています。
朝刊を見る→9/25 8:27 時点ドル円158.78▼-7 pipsドル円 予想レンジ158.41 〜 159.23ドル円 上の節目158.90▲ドル円 下の節目157.80▼ユーロドル1.1378▼-2 pipsユーロドル 予想レンジ1.1351 〜 1.1408ユーロドル 上の節目1.1403▲ユーロドル 下の節目1.1359▼きょうの指標重要指標なし