вопрос про временное условие в советнике

 

Подскажите пожалуйста
как мне  указать условие в советнике, чтобы некоторое событие происходило лишь 1 раз в день,
спустя определенное количество часов после начала торговли в текущих сутках по серверному времени.
Например сегодня (2 января) торговля у одних брокеров началась в одно время (7 утра, у других в 8 утра и тп). Поэтому интересует сдвиг в часах относительно начала торговли, которая пошла у конкретного брокера, на котором установлен советник

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


{выполняем при инициализации советника некие действия}
//затем присваиваем
  TimeSutki=iTime(NULL,1440,0);


//при тиках проверяем
//если не совпало - начались новые сутки
  if(TimeSutki!=iTime(NULL,1440,0)) { снова некоторые действия и присваиваем  TimeSutki=iTime(NULL,1440,0); }

 

alnev:

Поэтому интересует сдвиг в часах относительно начала торговли, которая пошла у конкретного брокера, на котором установлен советник 1 раз в сутки , в начале суток реализовано например так, а описать условие 1 раз в сутки но спустя N часов от начала торговли.

datetime GetSingleTime(const string symbol, const ENUM_TIMEFRAMES period, const int start = 0)
{
    datetime moment[];
    CopyTime(symbol, period, start, 1, moment);
    return(moment[0]);
}

datetime iStart = 0;

int OnInit()
{
    iStart = GetSingleTime(_Symbol, _Period); // remember time when trading started
    return(0);
}

void OnTick()
{
    int hoursFromStart = (GetSingleTime(_Symbol, _Period) - iStart) / PeriodSeconds(PERIOD_H1);

    if (iStart < GetSingleTime(_Symbol, _Period) // if current time greater than iStart then ...
    {
        // ... do something
    }

https://www.mql5.com/ru/forum/38580

https://www.mql5.com/ru/forum/6343

https://www.mql5.com/ru/forum/23583