Как поставить запуск OnCalculate через 60 сек

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
zusykss
10
zusykss  
Подскажите кто знает как автоматом сделать чтобы событие срабатывало каждые 60  сек???
Думал что так будет работать, но по факту он запускатся 1 раз при инициализации и все!!

int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
{
   /**///запуск раз в inpRefreshTimeSec сек
   int calcCheckSec = inpRefreshTimeSec;
   EventSetTimer(inpRefreshTimeSec);
   if (lastCalcTime != 0 && lastCalcTime + calcCheckSec >= TimeCurrent())
     {
      return(0);
     }
   lastCalcTime = TimeCurrent();

Vitalii Ananev
10605
Vitalii Ananev  
zusykss:
Подскажите кто знает как автоматом сделать чтобы событие срабатывало каждые 60  сек???
Думал что так будет работать, но по факту он запускатся 1 раз при инициализации и все!!

int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
                 const double& low[],
                 const double& close[],
                 const long& tick_volume[],
                 const long& volume[],
                 const int& spread[])
{
   /**///запуск раз в inpRefreshTimeSec сек
   int calcCheckSec = inpRefreshTimeSec;
   EventSetTimer(inpRefreshTimeSec);
   if (lastCalcTime != 0 && lastCalcTime + calcCheckSec >= TimeCurrent())
   {
      return(0);
   }
   lastCalcTime = TimeCurrent();

OnCalculate() запускается при получении нового тика. Для вашего случая надо использовать таймер и обработчик события OnTimer()

zusykss
10
zusykss  
Vitalii Ananev:

OnCalculate() запускается при получении нового тика. Для вашего случая надо использовать таймер и обработчик события OnTimer()

Благодарю за совет, если есть пример буду благодарен)
Renat Akhtyamov
15716
Renat Akhtyamov  
https://www.mql5.com/ru/docs/eventfunctions/eventsettimer
Документация по MQL5: Работа с событиями / EventSetTimer
Документация по MQL5: Работа с событиями / EventSetTimer
  • www.mql5.com
Обычно, эта функция должна вызываться из функции OnInit() или в конструкторе класса. Для того чтобы обрабатывать события, приходящие от таймера, эксперт или индикатор должен иметь функцию OnTimer(). Каждый эксперт и каждый индикатор работает со своим таймером, и получает события только от него. При завершении работы mql5-программы таймер...
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий