Вычислить конец недели

 
Добрый день! Подскажите как написать советнику что вот с 14:00 пятницы по 2:00 понедельника не торговать? т.е. незнаю как написать правильно функцию возвращяющюю булево запрещенное время али нет.
 
...
int start() {

  if (!CheckTradeTime()) return(0);
...
...
}

...
...

bool CheckTradeTime() {

  if (DayOfWeek() == 5 && Hour() > 13  ||
      DayOfWeek() == 6                 ||
      DayOfWeek() == 0                 ||
      DayOfWeek() == 1 && Hour() < 2)
  return(false);

  else return(true);
}
 
можно использовать назначенные задания в настройках виндов, создаете расписание на запуск метатрейдера в понедельник в 2 часа и выполнять не дольше 108 часов, тогда в пятницу в 14 часов программа закроется
 
blend >>:
можно использовать назначенные задания в настройках виндов, создаете расписание на запуск метатрейдера в понедельник в 2 часа и выполнять не дольше 108 часов, тогда в пятницу в 14 часов программа закроется

Плохо, если время работы задается в эксперте, мы можем не открывать позиции, но, допустим, корректно закрывать и тралить (если надо).

 
TheXpert >>:

Плохо, если время работы задается в эксперте, мы можем не открывать позиции, но, допустим, корректно закрывать и тралить (если надо).

"с 14:00 пятницы по 2:00 понедельника не торговать"

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

 

Написал

 
//ф-я возвращает ложь если нелзя открываться
bool CheckTradeTime() {
  Print("Вызов функции CheckTradeTime() "+Time[1]); 
  if (DayOfWeek() == 5 && Hour() > 13  ||
      DayOfWeek() == 6                 ||
      DayOfWeek() == 0                 ||
      DayOfWeek() == 1 && Hour() < 2)
      {
         Print("Типа пятница "+Time[1]);
         return(false);
      }  
  else
      { 
         return(true);
      }  
}


не работает на тестировании стратегии не заходит до 
Print("Типа пятница "+Time[1]);

int DayOfWeek( )
Возвращает порядковый номер дня недели (воскресенье-0,1,2,3,4,5,6) последнего известного времени сервера.

Замечание: при тестировании последнее известное время сервера моделируется.


Что значит моделируется? Почему у меня не моделируется?


	          
 
blend >>:
можно использовать назначенные задания в настройках виндов, создаете расписание на запуск метатрейдера в понедельник в 2 часа и выполнять не дольше 108 часов, тогда в пятницу в 14 часов программа закроется

смешно))) про тестер даже в голову не пришло

 
snik_666 >>:
int DayOfWeek( )
Возвращает порядковый номер дня недели (воскресенье-0,1,2,3,4,5,6) последнего известного времени сервера.

Замечание: при тестировании последнее известное время сервера моделируется.


Что значит моделируется? Почему у меня не моделируется?

поставьте круглые скобки в 1 и 4 условиях

 
blend >>:

поставьте круглые скобки в 1 и 4 условиях

//ф-я возвращает ложь если нелзя открываться
bool CheckTradeTime() {
  Print("Вызов функции CheckTradeTime() "+Time[1]); 
  if ((DayOfWeek() == 5 && Hour() > 13)  ||
      DayOfWeek() == 6                 ||
      DayOfWeek() == 0                 ||
      (DayOfWeek() == 1 && Hour() < 2))
      {
         Print("Типа пятница "+Time[1]);
         return(false);
      }  
  else
      { 
         return(true);
      }  
}

 

Точно! Спасибо!