
MT4 MT4 実行時エラー
4066
- 定数名
ERR_HISTORY_WILL_UPDATED- メッセージ
requested history data is in update state- 意味
- 要求した過去データを更新中
MT4エラー4066とは
iClose() や iMA() などで、別の通貨ペア・時間足のデータを取得しようとしたとき、そのデータがまだ読み込み中(更新中)だったことを示すエラーです。少し待って再取得すれば正しい値が得られます。
ログの表示例
iClose error 4066
「エキスパート」タブまたは「操作履歴」タブに表示されます。数値や表記の細部は、ビルド・ブローカー・EAの作りによって異なります。
MT4エラー4066の主な原因
- MT4起動直後や、はじめて開く通貨ペア・時間足のデータを参照した
- チャートを開いていない時間足(例:H1のチャートからD1)を参照した
MT4エラー4066の対処法
- 4066 が返ったら、そのティックでは計算を中断し、次のティックで取り直す
- OnInit() で使う時間足のデータを一度参照して読み込みを始めておく
- iBars(通貨ペア, 時間足) が十分な数になってから計算する
コード例(MQL4)
// 別の時間足のデータが揃うまで待つ(エラー4066・4073 対策)(MQL4)
bool GetDailyClose(double &value)
{
ResetLastError();
value = iClose(Symbol(), PERIOD_D1, 1);
int err = GetLastError();
if(err == 4066 || err == 4073 || value == 0)
{
// まだ読み込み中。次のティックで取り直す
return false;
}
return true;
}MetaEditor(MT4)でコンパイルできることを確認済みです。自分のEAに組み込むときは、変数名や設定値を合わせてください。












