открытие повторной сделки спустя n- времени или n -баров

 
Уважаемые проггеры :) Подскажите как правильно состряпать условие для открытия следующего колена  при прошествии n-времени или n- баров?
 

Пример для вызова из советника, функция GetSingleTime маленькая и при желании можно засунуть ее вовнутрь IsNewBar

datetime iBar;

void OnTick()
{
    if (IsNewBar(5) == 1) // example of call in EA for each 5th bar
    {
        return;
    }
}

int IsNewBar(int bars = 0) // check how many bars have gone since last check
{
    datetime now = GetSingleTime(_Symbol, _Period);
   
    if (int(now) - int(iBar) > PeriodSeconds(_Period) * bars)
    {
        iBar = now;
        return(1);
    }
   
    return(0);
}

datetime GetSingleTime(const string symbol, const ENUM_TIMEFRAMES period, const int start = 0) // get time of last bar
{
    datetime moment[];
    CopyTime(symbol, period, start, 1, moment);
    return(moment[0]);
}
 
artemiusgreat:

Пример для вызова из советника, функция GetSingleTime маленькая и при желании можно засунуть ее вовнутрь IsNewBar

спасибо, попробую
 
artemiusgreat:

Пример для вызова из советника, функция GetSingleTime маленькая и при желании можно засунуть ее вовнутрь IsNewBar

Можно полностью код?) А то тяжело разобраться
 

help iBarShift

https://www.mql5.com/ru/articles/81 и тут реализация этой функции для мт5

Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • 2010.05.11
  • Sergey Pavlov
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
Причина обращения: