Почему CopyTicksRange () все время возвращает -1?

 

У меня написан следующий код, и я пытаюсь получить тики истории символа.

Но я все время получаю -1. Я ждал больше 2 часов, но результат остался -1.

Пожалуйста, дайте мне знать, что я могу сделать, чтобы получить историю символа.

У меня есть символ = EURUSD. Он выбирается в обзоре рынка и открывается идентификатор графика.

Код:

void OnInit()
{
   EventSetMillisecondTimer(100);
}

void OnTimer()
  {
   MqlTick t[];
   datetime d = D'2002.08.18 00:00:00';
   int no = CopyTicksRange(Symbol(), t, COPY_TICKS_ALL, ulong(d) * 1000, ulong(d + PeriodSeconds(PERIOD_M1)) * 1000);
   ArrayPrint(t);
   Print(no);
  }
 
Это происходит на D1, W1 и MN1. И нет ошибки при использовании GetLastError ()
 
jaffer wilson #:
Это происходит на D1, W1 и MN1. И нет ошибки при использовании GetLastError ()

Попробуйте с даты 

datetime d = D'2021.08.18 00:10:00';
 
Сергей Таболин # :

Попробуйте с даты 

Но зачем мне пробовать другую дату, если я хочу видеть отметки этой даты?

 
jaffer wilson #:

Но зачем мне пробовать другую дату, если я хочу видеть отметки этой даты?

А точно были тики в воскресенье 18 августа 2002 года?

 
PapaYozh # :

А точно были тики в воскресенье 18 августа 2002 года?

Хорошо. Но даже если я изменю дату на datetime d = D'2002.08.20 00:00:00 '; все же я получаю то же -1, а позже он становится 0 без ошибок.

 
jaffer wilson #:

Хорошо. Но даже если я изменю дату на datetime d = D'2002.08.20 00:00:00 '; все же я получаю то же -1, а позже он становится 0 без ошибок.

Наверное, имеется в виду, что нет тиков за этот период...

CopyTicksRange

Возвращаемое значение

Количество скопированных тиков либо -1 в случае ошибки.
 
jaffer wilson #:

Хорошо. Но даже если я изменю дату на datetime d = D'2002.08.20 00:00:00 '; все же я получаю то же -1, а позже он становится 0 без ошибок.

Вот я и говорю - нужно изменить дату на более близкую. Если всё работает, то просто тиков за  2002.08 НЕТ.