MARKET
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▼|きょうの指標重要指標なし|

エラー4002(ERR_ARRAY_INDEX_OUT_OF_RANGE)― 配列の範囲外アクセス|MQLエラーコード

MQL4 / MQL5 両対応 よく見るエラーコードERR_ARRAY_INDEX_OUT_OF_RANGE

エラー4002ERR_ARRAY_INDEX_OUT_OF_RANGE ― 配列の範囲外を読み書きした

配列の範囲外(存在しない添字)を読み書きしようとしたときに出る。配列を扱うコードで、もっとも基本的でありながら踏みやすいエラー。

1主な原因

  • ループの終了条件を1つ間違えて、要素数ぴったりの添字(範囲外)まで読もうとした
  • ArrayResizeで縮めたあと、古いサイズを前提にアクセスしていた
  • ArraySetAsSeriesの有無で「0番目がどっちか」を勘違いしていた

2対処法

✓ ArraySizeで実際の要素数を確認してからアクセスする

添字を決め打ちせず、ArraySizeの戻り値でループの範囲を作る。配列を縮めたり並べ替えたりした直後は、そのあとのアクセスが古い前提のままになっていないか見直す。

3発生する例と直し方

// 悪い例:<=で1つ多く読んでしまう(境界を超える)
double buf[10];
for(int i = 0; i <= ArraySize(buf); i++)
   Print(buf[i]);

// 直した例:<にする
double buf2[10];
for(int i = 0; i < ArraySize(buf2); i++)
   Print(buf2[i]);

4MQL5では

🔁 差分

MQL5でも同じ4002。配列の境界チェックの考え方自体はMQL4・MQL5で変わらない。

5関連するエラー

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▼きょうの指標重要指標なし
REI-FX&BO OFFICIAL LINE

ツールのダウンロードパスワードは
公式LINEで、すぐ届きます。

友だち追加の自動返信でパスワードをお送りします。
新しいツールの公開や、検証でわかったことも先にお知らせします。

全ツールのパスワード新作ツールをいち早く配信は月1〜2回だけ
LINEで友だち追加 パスワードを受け取る ›

追加後にひとことメッセージをいただけると、ツールづくりの参考にします。