Скорость тикового потока

 

Приветствую MQL-мастеров!

Прошу гуманитарной помощи.

Задача:

Создать график количества тиков, приходящих в терминал в течение 1 сек. (время можно изменять в коде).

Фантазирую: 

int start()
  {
   int counted_bars=IndicatorCounted();

   if (timeprev == Seconds()) Buf_1 ++;
   else 
     {
      timeprev = Seconds();
      Buf_0[1] = Buf_1; 
      Buf_1 = 1; 
     }
  
   return(0);
  }

 

Ожидаю изменение значений количества тиков/сек. с периодичность 1 сек.

Получаю неравномерные по времени данные. Как совладать?

 

 

 

Тиков по текущему торговому символу?

1) Заводим глобальную переменную int TicksCount.

2) В OnInit запускаем таймер с переодичностью 1 сек.

3) В OnCalculate увеличиваем счетчик тиков на 1.

4) В OnTimer запоминаем значение счетчика и обнуляем его.

 
RickD:

Тиков по текущему торговому символу?

1) Заводим глобальную переменную int TicksCount.

2) В OnInit запускаем таймер с переодичностью 1 сек.

3) В OnCalculate увеличиваем счетчик тиков на 1.

4) В OnTimer запоминаем значение счетчика и обнуляем его.

Спасибо, RickD!

В теории  все очень понятно объяснили.

Но,  поскольку я ни разу не грамотный в MQL4, как раз детали оформления кода и сложны для меня.

Не могли бы немного подробнее  показать в коде:

- как запустить  таймер;

- что записать в OnCalculate;

- как запоминать значение счетчика. 

 
да не надо ничего, просто через определенные промежутки времени проверяйте объем по инструменту - его приращение и будет количество тиков
 
FAQ:
да не надо ничего, просто через определенные промежутки времени проверяйте объем по инструменту - его приращение и будет количество тиков
 

Спасибо, FAQ!

По той же причине необразованности: как записать это в коде?

 
void OnTimer(){int delta; static int vol;
   delta = Volume - vol;
   vol   = Volume;
   Comment(delta);
}
 
FAQ:

Да вы шаман!

Срочно буду пробовать. 

 

 

 Попробовл.

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

Одна надежда на мастеров. Прошу намекнуть правильный код.

 
 
eevviill:GetTickCount()
    Эта функция считает миллисекунды.
Причина обращения: