MQL4 / MQL5 両対応 たまに見るエラーコードERR_INVALID_FUNCTION_PARAMVALUE
目次
エラー4051ERR_INVALID_FUNCTION_PARAMVALUE ― 関数に渡した値そのものが不正
関数に渡した値そのものが、その関数が受け付けられる範囲の外にあったときに出る。特定の1つの原因があるわけではなく、様々な関数で共通して出る「値がおかしい」の総称。
1主な原因
- 配列の要素数や添字に、あり得ない値(負の数など)を渡した
- 文字列操作系の関数に、範囲外の開始位置や長さを渡した
- NULLを想定していない引数にNULLを渡した
2対処法
✓ どの引数が原因かを1つずつ絞り込む
複数の引数を持つ関数呼び出しをいきなり実行せず、怪しい引数だけ先にPrintで値を確認してから呼ぶと原因が特定しやすい。境界値(0・最大値・空文字)を渡すコードパスが無いか洗い出す。
3発生する例と直し方
// 悪い例:countがマイナスになり得るのに確認していない int count = ArraySize(buf) - offset; ArrayResize(buf, count); // 直した例:先に範囲を確認してから呼ぶ int count2 = ArraySize(buf) - offset; if(count2 < 0) { Print("offsetが配列サイズを超えています"); return; } ArrayResize(buf, count2);
4MQL5では
🔁 差分
MQL5でも同じ4051として共通。4001番台以降のランタイムエラーは、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▼きょうの指標重要指標なし