Скачать MetaTrader 5

TimeLocal() и тест советника!

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Управляй агентами в профиле. Это просто!
ermax
6
ermax 2011.06.12 23:25 

Всем привет, вот как 2 дня уже учу mql5... написал советника. Но возникла трабла с тестом.

Вообщем ордер у меня срабатывает в определённое время, вот код (прошу не пинать если что то не так)

void OnTick() {
   datetime Date=TimeLocal();    //Получаем текущее время
   MqlDateTime nowDate;          //Создаем временую структуру
   TimeToStruct(Date,nowDate);   //Конвертим из datetime в MqlDateTime
   if(nowDate.hour == "12" && nowDate.min=="15") {
      //Здесь код бла бла бла, + срабатывание ордера
      //и вот сюда тестер не заходит
   }
}

Советник вообще не срабатывает в IF.

Я начал рыть что за дела, сделал принт текущего времени, в итоге постоянно выводит последние семь минут.

Как быть? Ткните носом.

Nikolay Demko
12464
Nikolay Demko 2011.06.12 23:36  
ermax:

Всем привет, вот как 2 дня уже учу mql5... написал советника. Но возникла трабла с тестом.

Вообщем ордер у меня срабатывает в определённое время, вот код (прошу не пинать если что то не так)

Советник вообще не срабатывает в IF.

Я начал рыть что за дела, сделал принт текущего времени, в итоге постоянно выводит последние семь минут.

Как быть? Ткните носом.

Вообще то в структуре MqlDateTime hour определено как int

Структура даты содержит в себе восемь полей типа int.

struct MqlDateTime
  {
   int year;           // год
   int mon;            // месяц
   int day;            // день
   int hour;           // час
   int min;            // минуты
   int sec;            // секунды
   int day_of_week;    // день недели (0-воскресенье, 1-понедельник, ... ,6-суббота)
   int day_of_year;    // порядковый номер в году (1 января имеет номер 0)
  };

так с чего вы его сравниваете со стрингом ?

правильно будет так:

if(nowDate.hour == 12 && nowDate.min== 15)


Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий