MT4 MT4 実行時エラー
4016
- 定数名
ERR_NOT_INITIALIZED_ARRAY- メッセージ
non-initialized array- 意味
- 初期化されていない配列を使った
MT4エラー4016とは
サイズを決めていない配列(動的配列)を、要素を確保しないまま使ったときのエラーです。
MT4エラー4016の主な原因
- double a[]; と宣言しただけで、ArrayResize() をせずに a[0] に値を入れている
- 要素を確保する処理が、条件によっては実行されていない
MT4エラー4016の対処法
- 使う前に ArrayResize() で必要な数を確保する
- ArraySize() で要素数を確認してからアクセスする
コード例(MQL4)
// 配列の範囲を超えないループ(array out of range / 4002 対策)(MQL4)
double Average(const double &values[])
{
int n = ArraySize(values);
if(n == 0) return 0;
double sum = 0;
for(int i = 0; i < n; i++) // 「<=」にすると範囲外
sum += values[i];
return sum / n;
}
double HighestClose(int bars)
{
bars = MathMin(bars, Bars - 1); // 足の本数を超えて参照しない
double hi = 0;
for(int i = 1; i <= bars; i++)
hi = MathMax(hi, Close[i]);
return hi;
}MetaEditor(MT4)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












