Ограничить торговлю в советнике в указанный период времени... - страница 2

 
Vladimir Pastushak:

Вот как раз эта проверка мне и нужна

Не могу сообразить как остановить именно с 22 00 до 02 00 ...

Условие типа Hour() > 22 && Hour()<2   не прокатит

if (Hour() > 21 || Hour()<2) return;
 

Вот такой код останавливает советника с указанного часа до указанного часа

bool DontTradeTime()
  {
   if(iDontTradeHourStart<iDontTradeHourStop) // Стандарт           00 00  <  23 00
      if(Hour()>=iDontTradeHourStart && Hour()<iDontTradeHourStop)
         return false;
         
   if(iDontTradeHourStart>iDontTradeHourStop) // Переход через ночь 22 00  >  01 00
      if((Hour()>=iDontTradeHourStart) || (Hour()<iDontTradeHourStop))
         return false;
         
   if((iDontTradeHourStart==iDontTradeHourStop) || (iDontTradeHourStart<0 && iDontTradeHourStop<0)) // Не задано время или время заданно ошибочно
      return true;
   return true;
  }
 
Vladimir Pastushak:

Вот такой код останавливает советника с указанного часа до указанного часа

проще и лучше проверять внешнюю переменную (глобальную переменную терминала) на вопрос "можно открывать/нет". Для тестера строить чёткий по-минутный массив на сутки (1440 bool/int это немного)

А значение ставить из внешней программы (скрипта/индикатора/иного-советника). Тогда можно выстраивать программы "гроздьями", кто-то задаёт режимы, кто-то их придерживается, а под настроение наворачивать красивости GUI вообще не трогая код советника.

 
Vladimir Pastushak:

Вот такой код останавливает советника с указанного часа до указанного часа

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

сами додумались или кто функцию скинул?
 
человек вам подсказал, так зачем ему хамить?
 
Дмитрий Романов #:
человек вам подсказал, так зачем ему хамить?

Иных уж нет а те далече
Причина обращения: