MT4 MT4 実行時エラー
5001
- 定数名
ERR_FILE_TOO_MANY_OPENED- メッセージ
too many opened files- 意味
- 同時に開いているファイルが多すぎる(FileClose 忘れ)
MT4エラー5001とは
同時に開いているファイルが多すぎるときのエラーです。FileClose() の呼び忘れで、開いたままのファイルが増えると起きます。
MT4エラー5001の主な原因
- FileOpen() したファイルを、途中の return などで閉じずに抜けている
- OnTick() のたびにファイルを開いて、閉じていない
MT4エラー5001の対処法
- FileOpen() のあとは、どの経路でも FileClose() を呼ぶ
- ターミナルを再起動すると、開いたままのファイルは閉じられる
コード例(MQL4)
// MQL4\Files 内の CSV を読む(エラー4103・5004 対策)(MQL4)
void ReadCsv()
{
string name = "signals.csv"; // フルパスではなく、MQL4\Files からの相対パス
if(!FileIsExist(name))
{
Print(name, " が MQL4\\Files にありません");
return;
}
int h = FileOpen(name, FILE_READ | FILE_CSV | FILE_SHARE_READ, ',');
if(h == INVALID_HANDLE)
{
Print("FileOpen error ", GetLastError());
return;
}
while(!FileIsEnding(h)) // 最後まで読んだら終了(4099 を出さない)
{
string col1 = FileReadString(h);
Print(col1);
}
FileClose(h);
}MetaEditor(MT4)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












