Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
MultiZigZag - еще один вариант зигзага. (Экономный зигзаг) - индикатор для MetaTrader 4
- Просмотров:
- 15448
- Рейтинг:
- Опубликован:
- 2008.11.01 09:24
- Обновлен:
- 2016.11.22 07:33
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
В основе алгоритм зигзага, поставлявшегося с Метатрейдером 4 в 2005-2006 годах.
Алгоритм замечательный. В очень многих пользовательских индикаторах применяется именно этот алгоритм. Первоначально этот алгоритм на MQL4 перевел Rosh. За это ему большое спасибо. Хотелось бы знать, кто первый придумал этот алгоритм. Просьба, если кто знает, в комментариях сообщить имя (или ник) автора. А также, на каком языке он был ранее реализован и для какой торговой платформы.
Основные недостатки первоначальной, 2005-2006 годов, версии:
- Больая нагрузка на процессор из-за того, что происходил полный пересчет зигзага на каждом тике. Во время пересчета маломощные компьютеры при сильном движении на рынке буквально зависали.
- Неточные построения. Переломы зигзага часто просто повисали "в воздухе", не привязанные к максимуму (минимуму) бара. А, по идее, зигзаг должен показывать точное положение максимумов (минимумов) на графике.
- При пролистывании истории назад загзаг вообще переходил в свободный полет и строился никак зрительно не привязанным к графику.
Данная версия зигзага избавлена от всех перечисленных недостатков. Пересчитываются только последние три луча зигзага. Причем пересчет происходит только тогда, когда цена выходит за пределы уже посчитанной части нулевого бара. То есть, когда обновляется максимум или минимум нулевого бара, когда возникает новый бар, а также при подкачке истории.
Каждый из трех зигзагов использует по два буфера. Один буфер для максимумов, второй - для минимумов. Это позволяет выводить максимум и минимум зигзага на одном баре. Оставлено два свободных буфера. Желающие могут дописать код и встроить четвертый экземпляр зигзага. Это может послужить неплохим уроком для начинающих программистов на MQL4. Или же можно свободные буферы задействовать под какие-то еще задачи - в случае, если зигзаг будет встраиваться в разрабатываемые системы.
Расчет и построение зигзагов со старших таймфреймов сделаны без применения функции icustom(). Для целей автоматизации можно отказаться от индикаторных буферов. В этом случае можно рассчитывать зигзаги для всех таймфреймов одновременно, а также для любого количества торговых инструментов. Лишь бы хватило оперативной памяти. Реализация расчетов без функции icustom() позволяет сделать, например, поиск паттернов (Gаrtley и других) не только на текущем таймфрейме, но и на любом выбранном таймфрейме, а также на нескольких таймфреймах одновременно...
Это может позволить реализовать некоторые задачи, которые не было возможности реализовать в ZUP. В ZUP весь комплект инструментов реализовывался на одном зигзаге, на том зигзаге, который включен в текущем экземпляре ZUP. Не было возможности сделать взаимодействие различных инструментов на различных зигзагах. Не было простой возможности. А сложные возможности - экзотика, которая мало кому интересна. К тому же, сопровождение такого достаточно сложного средства как (индикаторная платформа) ZUP уже весьма затруднительное занятие... Поэтому ZUP пусть находится в свободном плавании... А MultiZigZag может стать основой новых направлений... но это для желающих...
Параметры.
Большинство внешних параметров - строковые переменные.
В каждую строковую переменную через запятую записываются параметры для трех зигзагов. Разделителем параметров является запятая.
Первая цифра - для первого зигзага, вторая - для второго, третья - для третьего. Через запятую.
ExtDepth, ExtDeviation и ExtBackstep - стандартные параметры для зигзага.
Если задать ExtDepth=0, то соответствующий зигзаг выводиться не будет.
ExtMaxBar - количество баров, на которых рассчитывается зигзаг.
GrossPeriod - периоды графиков, заданные в минутах, по данным с которых строится зигзаг. При записи 0 зигзаг выводится на текущем таймфрейме.
Можно записывать следующие значения: 0-1-5-15-30-60-240-1440-10080-43200.
ExtReCalculate - количество экстремумов зигзага, начиная с 0, пересчитываемых в режиме реального времени. Применяется для зигзагов со старших таймфреймов. Этот параметр лучше не изменять.
По умолчанию зигзаги выводятся с H1-H4-D1. Зигзаги будут выводиться на графиках начиная с минутного таймфрейма и заканчивая дневным таймфреймом. На графике дневного таймфрейма будет выведен только один зигзаг, построенный по данным, взятым с D1. Строятся только зигзаги по данным со старших или с текущего таймфрейма.
В примере на картинке: зигзаг с H1 выведен цветом Aqua, H4 -Red, D1 - Yellow.
MultiZigZag - еще один вариант зигзага. (Экономный зигзаг)
Скрипт демонстрирует простой и быстрый способ вычисления числа Эйлера.
Эксперт exp_iCustom_v5Новые версии эксперта exp_iCustom, работающего с любым Custom-индикатором, рисующим стрелки на покупку/продажу.
Советник по торговой стратегии FXRaider'a от ForTrader.ru
Butterworth Moving AverageПредставляет собой стандартный индикатор MovingAverage с добавленной функцией сглаживания фильтром Баттерворта 2-го порядка.