У меня проблема с получением значений времени для бара в более высоких таймфреймах. Я проверяю мой советника в тестере, и когда я пытаюсь использовать функцию iTime()
с параметром PERIOD_D1
я всегда получаю значение 1970.01.01 00:00:00
.MQL4 Недостаточно памяти для данных истории
Также GetLastError()
функция возвращает сообщение «not enough memory for history data
». Он повторяется все время, хотя тестер работает в течение нескольких дней. Беллоу код я пытаюсь запустить:
datetime t = iTime(Symbol(), PERIOD_D1, 0);
Print("Trend tick time: " + t);
int check1 = GetLastError();
if ( check1 != ERR_NO_ERROR) Print("Error: ", ErrorDescription(check1));
И я получаю такой вывод:
0 22:33:24 2016.06.29 08:00 HLR FDE30,M1: Trend tick time: 1970.01.01 00:00:00
0 22:33:24 2016.06.29 08:00 HLR FDE30,M1: Error: not enough memory for history data
0 22:33:25 2016.06.30 08:00 HLR FDE30,M1: Trend tick time: 1970.01.01 00:00:00
0 22:33:25 2016.06.30 08:00 HLR FDE30,M1: Error: not enough memory for history data
0 22:33:26 2016.07.01 08:00 HLR FDE30,M1: Trend tick time: 1970.01.01 00:00:00
0 22:33:26 2016.07.01 08:00 HLR FDE30,M1: Error: not enough memory for history data
[...]
И то же самое происходит, когда я звоню другие встроенные функции, которые занимают временные рамки параметр. Как, например iMA()
, iCCI()
, iRSI()
.
Документация предполагает, что вышеуказанные функции могут принимать любое значение таймфрейма: https://docs.mql4.com/series/itime
Я только добавить, что мои настройки диаграммы MetaTrader Terminal являются:
Max bars in history: 1250000
Max bars in chart: 1250000
Есть ли у вас какие-либо предложения, как я могу решить эту проблему проблема?
Возможно, есть какие-то другие настройки или ограничения по охране окружающей среды, я не знаю?