Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сервис Фриланс: безопасный способ заказать робота. Попробуй сам!
vladtem
19
vladtem 2015.09.23 15:20 

Приветствую 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 сек.

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

 

 

. ... Rick D. ... .
1176
. ... Rick D. ... . 2015.09.23 15:26  

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

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

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

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

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

vladtem
19
vladtem 2015.09.23 16:01  
RickD:

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

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

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

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

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

Спасибо, RickD!

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

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

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

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

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

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

Рустам
3597
Рустам 2015.09.23 16:49  
да не надо ничего, просто через определенные промежутки времени проверяйте объем по инструменту - его приращение и будет количество тиков
vladtem
19
vladtem 2015.09.23 16:52  
FAQ:
да не надо ничего, просто через определенные промежутки времени проверяйте объем по инструменту - его приращение и будет количество тиков
vladtem
19
vladtem 2015.09.23 16:54  

Спасибо, FAQ!

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

Рустам
3597
Рустам 2015.09.23 17:02  
void OnTimer(){int delta; static int vol;
   delta = Volume - vol;
   vol   = Volume;
   Comment(delta);
}
vladtem
19
vladtem 2015.09.23 17:08  
FAQ:

Да вы шаман!

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

vladtem
19
vladtem 2015.09.23 17:47  

 

 Попробовл.

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

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

Vasyl Nosal
18549
Vasyl Nosal 2015.10.05 17:59  

GetTickCount()

Рустам
3597
Рустам 2015.10.05 18:03  
eevviill:GetTickCount()
    Эта функция считает миллисекунды.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий