Вопрос к знатокам MQL

 
Всем доброго времени суток!
Суть вопроса в следующем: как можно заставить индикатор пересчитываться не чаще определенного числа раз в секунду, например не чаще 2-х раз.
Функция Sleep в индикаторах не работает.
 
Debugger писал(а) >>
Всем доброго времени суток!
Суть вопроса в следующем: как можно заставить индикатор пересчитываться не чаще определенного числа раз в секунду, например не чаще 2-х раз.
Функция Sleep в индикаторах не работает.


Зачем?
 
Алгоритм долго считает.
 
Debugger писал(а) >>
Алгоритм долго считает.


Может вначале алгоритм оптимизировать. Хотя расчет раз в секунду, или в 10 секунд сделать можно.
Сохраняем последнее время расчета
На следующих тиках проверяем сколько прошло секунд.
Если больше заданного, то считаем, иначе выходим без расчета
 
Можно мерить между тиками миллисекунды этим:
int GetTickCount();
// Функция GetTickCount() возвращает количество миллисекунд, прошедших с момента старта системы.
// Счетчик ограничен разрешающей способностью системного таймера. Так как время хранится как беззнаковое целое, то он переполняется каждые 49.7 дней. 
 
Вадим, ты опять меня выручил. Громадный респект!!!!
 
ЗДРАВСТВУЙТЕ! Не могли бы Вы посмотреть код и объяснить, почему этот индикатор тормозит у ДЦ, которые дают котировки 5 знаков,а в ДЦ которые дают котировки 4 знака работает нормально. И нельзя ли его как то поправить, чтобы он подружился с ДЦ с пятью знаками. Заранее спасибо
Файлы:
 

Да, действительно. На 5-ти знаке индюк тормозит. 

А вот почему, не пойму. Вроде всё норм. в коде...

 
rid >>:

Да, действительно. На 5-ти знаке индюк тормозит.

А вот почему, не пойму. Вроде всё норм. в коде...

Наверно частота котировок выше чем на 4-х.

Сравните тиковые объемы.

----- и пересчёт и перерисовку следует делать при "существенном" изменении цены.

"Существенность", наверное, следует вынести в параметры. 5-7 пипсов на 5-ти знаке погоду не изменят.

;)

 
FreeLance >>:

Наверно частота котировок выше чем на 4-х.

Сравните тиковые объемы.

Если так то можно сделать чтобы расчёт шёл на каждом 3-м или 5-м тике при 5-знаке.

Или вообще по сформировавшимся барам.

 

Добрый день.

В разделе Code Base имеется индикатор - https://www.mql5.com/ru/code/8752 . 

Судя по описанию, он отрисовывает на истории в своем окне эквити одной позиции или суммы нескольких позиций. На заданном отрезке истории.

Никак не получается запустить его даже для одной валюты!

"Перед тем как установить индикатор, создайте на графике хотя бы одну вертикальную линию со следующими параметрами:
Положение линии openN (где N - порядковый номер пакета) задаёт время открытия пакета
." 

Вертикальную линию я создала. Но не пойму, - что за параметр openN (в Свойствах его нет) и где задается   N ?

Далее :

"Позиции в индикаторе задаются только с помощью трендовых линий определенного цвета на графике инструмента.
Положение линии определяет время открытия и закрытия пакета."

Как провести ограниченный отрезок трендовой линии я не знаю. Получается все время бесконечный луч в одну сторону.

Пож. подскажите.