В советнике реализовыано открытие сделки в 9.30...на м30. Почему не открывает её например в 9.31

 

В общем прогоняю на тестере, и когда перменные Th=09, Tm=30, то открывает сделку каждый день, но если поменяю Tm на 29 например или 32 и так далее, то ни одной сделки не открывается..проверяю на М30. Но разницы то не должно быть..если время соответствует то функция Executor(); должна работать. в ней прописаны критерии открытия ордеров...в чём проблема может быть? бьюсь об стенку уже...

extern double Th=09;
extern double Tm=30;

int D;
//---------------------------------------------------------------


int start()
{
int Ch=Hour();
double Cm =Minute();


if (OrdersTotal()==0)
{if (D!=Day())
{if (Ch==Th && Cm==Tm)
{Executor();
D=Day();
}
}
}
return;

}

 

Смотрим в справку:

int Hour()
Возвращает текущий час (0,1,2,..23) последнего известного серверного времени на момент старта программы (в процессе выполнения программы это значение не меняется).
Замечание: при тестировании последнее известное время сервера моделируется.

вывод : используем TimeHour( Time[0] ) или TimeHour(TimeCurrent())


Ну и остальные переменные времени тоже так же
 

Вместо Tm=30; попробуйте поставить Tm>=30;

И тестируйте на М1. Как вы хотите открываться на 29-ой, если тестируете на М30?! ;)

 
Ну или смотрим сюда и учимся как правильно писать код : https://www.mql5.com/ru/forum/107476/page81#163009
 
Спасибо. ценно
Причина обращения: