Открыто 4 графика (евро, фунт, франк, йена) в 15 минутном временном интервале.
При подключении индикатора Movment.mq4 на МТ4 b.211 наблюдается существенное замедление работы. Время
отклика на нажатие мышки достигает нескольких минут. При этом
происходит большой захват как оперативной, так и виртуальной
памяти - примерно по 50 Mb каждого вида. Пробовал на разных компьютерах с
разной частотой и объемом оперативки - результат одинаковый.
Это так и должно быть?
- Сжирание большого объема оперативной памяти Metatraderом
- Как это объяснить?
- Что с агентами тестирования
Посмотрел код - это индикатор-убийца. Неужели он нормально работал
на других билдах?
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
2007.11.30 18:02:52 Movment EURUSD,H1: Время обсчета тика 344 ms. Bars=55547
Integer:
Конечно используются все 8 буферов, но никаких дополнительных
массивов.
Сколько баров у вас в окне? Когда тормозит, на запуске только
или всегда?
Конечно используются все 8 буферов, но никаких дополнительных
массивов.
Тормоз начинается почти сразу при старте МТ, когда грузится профиль. Основная проблема не столько в скорости работы самого индикатора, сколько в свопировании. На машине 256 Мб оперативки. Win2000. Настройки автозапуска по минимуму. Ничего, кроме МТ и подключения и интернету не запускается. После запуска МТ имеет для этой задачи захват оперативки на уровне 20-30 Мб и захват виртуальной памяти на уровне 40-50 Мб. Остальные задачи работают нормально. А вот МТ тормозит со страшной силой. Это вполне понятно - работа в свопе всегда тормозит. Именно по этому и возник вопрос, нет ли возможности оптимизировать объем используемой памяти? Есть ли возможность запретить свопировать в виртуальную память, когда хватает оперативной?
Перепроверил настройку числа баров в окне. Там действительно стояло нечто (250000)! Уменьшил до 5000. Посмотрю, что будет теперь.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь