
MT5 MT5 実行時エラー
4401
- 定数名
ERR_HISTORY_NOT_FOUND- 意味
- 要求した過去データ(ヒストリー)が見つからない
MT5エラー4401とは
CopyRates()・CopyClose()・iClose() などで、まだ読み込まれていない銘柄・時間足のデータを要求したときのエラーです。MT5はデータを必要になった時点で読み込むため、最初の1回はこのエラーになることがよくあります。
ログの表示例
CopyRates failed, error 4401
「エキスパート」タブまたは「操作履歴」タブに表示されます。数値や表記の細部は、ビルド・ブローカー・EAの作りによって異なります。
MT5エラー4401の主な原因
- はじめて参照する銘柄・時間足で、データの読み込みが終わっていない
- 要求した期間のデータがサーバーにない
- 気配値表示にない銘柄を参照した
MT5エラー4401の対処法
- エラー時はそのティックの計算をやめ、次のティック(またはタイマー)で取り直す
- SeriesInfoInteger(銘柄, 時間足, SERIES_SYNCHRONIZED) が true になってから計算する
- 「ツール」→「オプション」→「チャート」の「チャートの最大バー数」を増やす
コード例(MQL5)
// 別の時間足のデータが揃ってから計算する(4401・4806 対策)(MQL5)
bool GetCloses(const string symbol, ENUM_TIMEFRAMES tf, int count, double &closes[])
{
if(!SeriesInfoInteger(symbol, tf, SERIES_SYNCHRONIZED))
return false; // まだ同期中。次のティック(またはタイマー)で取り直す
ResetLastError();
int got = CopyClose(symbol, tf, 1, count, closes);
if(got < count)
{
PrintFormat("CopyClose %d/%d error=%d", got, count, GetLastError());
return false;
}
return true;
}MetaEditor(MT5)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












