Существенное замедление работы компьютера при использовании Movment.mq4

 
Открыто 4 графика (евро, фунт, франк, йена) в 15 минутном временном интервале.  При подключении индикатора Movment.mq4 на МТ4 b.211 наблюдается существенное замедление работы. Время отклика на нажатие мышки достигает нескольких минут. При этом происходит большой захват как оперативной, так и виртуальной памяти - примерно по 50 Mb  каждого вида. Пробовал на разных компьютерах с разной частотой и объемом оперативки - результат одинаковый.  Это так и должно быть?
 
Посмотрел код - это индикатор-убийца. Неужели он нормально работал на других билдах?
 
Rosh:
Посмотрел код - это индикатор-убийца. Неужели он нормально работал на других билдах?
Ранее такого большого тормоза не наблюдалось. Висел себе. Я не очень силен в MQL4.  В чем именно убийственность индикатора?
 
Он каждый тик обсчитывает все бары. Чем больше баров на графике - тем сильнее тормоза.
 
Rosh:
Он каждый тик обсчитывает все бары. Чем больше баров на графике - тем сильнее тормоза.

Еще один убийственный индикатор https://c.mql5.com/mql4/forum/2007/11/metaptrader2007.mq4
 

Не знаю что вы там видите смотря в код, но у меня на каждом тике просчитывается примерно следующее количество баров:

Можете убедиться наглядно.

Файлы:
 
Получатеся на одном тике: 19+3+3+19+1=45 баров. 12+12+12+12+1=49 баров. И т.д. в таком порядке.
 
После серии экспериментов выяснилось, что нагрузка на процессор и объем захватываемой памяти, особенно виртуальной, не столько зависит от настроек этого индикатора, сколько от размера файла истории на моем компьютере. Насколько я понимаю, файл истории целиком пытаются всегда держать и обрабатывать, даже если индикатор работает только с последними интервалами. Кроме того, даже при наличии неиспользованной оперативки, происходит захват приличного места в виртуальной памяти.

Нет ли возможности оптимизировать объем используемой памяти? Есть ли возможность запретить свопировать в виртуальную память, когда хватает оперативной?
 

Сколько баров у вас в окне? Когда тормозит, на запуске только или всегда?

В индикаторе нет ничего особенного ,чтобы забирало много памяти. Конечно используются все 8 буферов, но никаких дополнительных массивов.

 
Integer:

Не знаю что вы там видите смотря в код, но у меня на каждом тике просчитывается примерно следующее количество баров:

Можете убедиться наглядно.


Извините, не заметил использование функции IndicatorCounted(), на деле не проверял, поэтому ошибся. Сейчас посмотрел повнимальнее и увидел. так что все нормально. Но причину замедления при переключении попробовал найти под другому, сделал замер времени первоначального расчета индикатора, оно составило для 55 тысяч баров на Core 2 Duo (1.86 ГГц) порядка 300 миллисекунд, что в общем то не смертельно. при последующих тиках время расчета минимально. Поэтому это индикатор не является убийцей, прошу извинить.

2007.11.30 18:03:00 Movment EURUSD,H1: Время обсчета тика 0 ms. Bars=55547
2007.11.30 18:02:52 Movment EURUSD,H1: Время обсчета тика 344 ms. Bars=55547
 
Integer:

Сколько баров у вас в окне? Когда тормозит, на запуске только
или всегда?

В индикаторе нет ничего особенного ,чтобы забирало много памяти.
Конечно используются все 8 буферов, но никаких дополнительных
массивов.

Тормоз начинается почти сразу при старте МТ, когда грузится профиль. Основная проблема не столько в скорости работы самого индикатора, сколько в свопировании. На машине 256 Мб оперативки. Win2000. Настройки автозапуска по минимуму. Ничего, кроме МТ и подключения и интернету не запускается. После запуска МТ имеет для этой задачи захват оперативки на уровне 20-30 Мб и захват виртуальной памяти на уровне 40-50 Мб.  Остальные задачи работают нормально. А вот МТ тормозит со страшной силой.  Это вполне понятно - работа в свопе всегда тормозит. Именно по этому и возник вопрос, нет ли возможности оптимизировать объем используемой памяти? Есть ли возможность запретить свопировать в виртуальную память, когда хватает оперативной?

Перепроверил настройку числа баров в окне. Там действительно стояло нечто (250000)! Уменьшил до 5000. Посмотрю, что будет теперь.
Причина обращения: