Запрет по времени.

 
Не могу понять, почему не получается запрет по времени на демо, хотя в тестере нормально работает. В ниже приведённом коде я хотел получить, чтобы до заданного внешними переменными
времени Commet не выводился на экран, но он уменя почему-то выводится. Время во внешних переменных ввожу серверное, кажется как надо, но не получается. Обращаюсь за помощью к профи.
Покритикуйте и подскажите, пожалуйста.
extern int    ZapretTimeEnd   = 21;
extern int    EndMinut        = 37; 
//+------------------------------------------------------------------+
//| expert start function                                                         |
//+------------------------------------------------------------------+
int start()
  {
//----
  Comment("");
  if(TimeCurrent()<StrToTime(toTime(ZapretTimeEnd, EndMinut,0))) 
   { 
    return(0);
   }
  //Comment("TimeCurrent=",TimeCurrent()," StrToTime=",StrToTime(toTime(ZapretTimeEnd, EndMinut,0)));
  Comment(" Hour=",Hour(),"  Minut=",Minute());
        
//----
   return(0);
  }

//+-----------------------------------------------------------------------------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                                                                                |
//+-----------------------------------------------------------------------------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                                                                                                                    |
//|  Описание : Преобразует два/три целых числа в строку в формате времени     |
//+-----------------------------------------------------------------------------------------------------------------------------------------------+
//|  Параметры:                                                                                                                                                                      |
//|    h - часы                                                                 |
//|    m - минуты                                                               |
//|    s - секунды           (0 - не использовать)                                                                                         |
//+------------------------------------------------------------------------------------------------------------------------------------------------+
string toTime(int h=0, int m=0, int s=0) {
  string st="";
  if (h==0) st="00:";
  else      st=StringConcatenate(AddLeadingZero(h, 2), ":");

  if (m==0) st=StringConcatenate(st, "00");
  else      st=StringConcatenate(st, AddLeadingZero(m, 2));

  if (s!=0) st=StringConcatenate(st, ":", AddLeadingZero(s, 2));

  return(st);
}
//+--------------------------------------------------------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                                                    |
//+--------------------------------------------------------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                                                                                        |
//|  Описание : Добавляет к строке S столько лидирующих нулей "0",            |
//|           : чтобы длина строки S стала равна K.                                                                |
//+---------------------------------------------------------------------------------------------------------------------------+
//|  Параметры:                                                                                                                                            |
//|    s - строка                                                     |
//|    k - длина строки S                                                                                                                         |
//+---------------------------------------------------------------------------------------------------------------------------+
string AddLeadingZero(string s, int k) {
  while(StringLen(s)<k) s=StringConcatenate("0", s);
  return(s);
}
Файлы:
pustoy.mq4  4 kb
 

Ответ на ваш вопрос находится в документации, используйте TimeHour(TimeCurrent()), а вообще то есть отличная метода преобразования

int EndData=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));

 
 if(TimeCurrent()<StrToTime(toTime(ZapretTimeEnd, EndMinut,0))) 

Вам не кажется, что тут условие наоборот должно быть? =)

А то получается начнем работать только после того, как время истекло ...

 
GarF1eld писал(а) >>

Вам не кажется, что тут условие наоборот должно быть? =)

А то получается начнем работать только после того, как время истекло ...

Мне как раз это и надо, чтобы коммент выводился после указанного

 
xrust писал(а) >>

Ответ на ваш вопрос находится в документации, используйте TimeHour(TimeCurrent()), а вообще то есть отличная метода преобразования

int EndData=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE));

Тогда подскажите мне, пожалуйста, как правильно задать временной интервал запрета торговли например с 6:25 до 21:35.

 

Ежедневно или однократно?

 
xrust писал(а) >>

Ежедневно или однократно?

Ежедневно.

 
...тут не так давно автор ветки ....
khorosh писал(а) >>

....Так может сказать только человек недалёкий и случайный на этом форуме и имеющий склочный характер.

И сразу, всё встало на свои места: "далёкость и случайность" khorosh

То что не случайно - факт. "Далёкость", видна из детского вопроса.

Задаёшь детские вопросы - не обвиняй других.


Прежде чем судить других - наберись ума и знаний.

"Не судите и не судимы будете."

 
Если Вы считаете вопрос детский, то укажите ошибку в моём коде . А если не сможете, то это как раз будет означать, что вопрос не детский.
 
khorosh >>:
Если Вы считаете вопрос детский, то укажите ошибку в моём коде . А если не сможете, то это как раз будет означать, что вопрос не детский.

То есть критерий "взрослости" вопроса является, то что можно ли на него дать ответ... Забавно.

khorosh >>:

Тогда подскажите мне, пожалуйста, как правильно задать временной интервал запрета торговли например с 6:25 до 21:35.

if(Hour()>6 && Hour()<21)
	return(0);
if(Hour()==6 && Minute()>=25)
	return(0);
if(Hour()==21 && Minute()<=35)
	return(0);

//Тут код программы, если он НЕ в заданном промежутке, то он будет выполняться, иначе не будет.
Покороче я что-то не придумал.
 
За вариант спасибо, но Вам я задавал другой вопрос, где ошибка в моём коде, в тайне надеясь, что ошибки нет, а значит вопрос не будет детским. А что касается "далёкость и случайность", то я не за себя радел, а защищал KimIV и сейчас уже раскаиваюсь - неблагодарное это дело других защищать.
Причина обращения: