Индикатор Alligator

alligator

Добрый день, уважаемые подписчики, терйдеры и все те, кто заинтересовался данным ресурсом. Сегодня темой поста данного ресурса послужит написание торгового индикатора Alligator.

Дня начала объясню суть индикатора Alligator. В основе индикатора Alligator лежит использование в качестве торговых сигналов различные комбинации (переплетения) скользящих средних разного периода. Создатели этого индикатора назвали каждую линию Alligator по-своему: скользящая средняя с большим периодом создателям представилась в виде челюсти Аллигатора, средняя скользящая – зубы аллигатора, а сама чувствительная скользящая средняя –это губы аллигатора. И в зависимости от выпавшей комбинации, трейдер принимает решение на BUY || SELL или вовсе уйти с рынка и не ввязываться в неизведанное под названием флэт.

Для того, чтобы его спрограммировать, необходимо узнать его настройки, чтобы и у нашего будущего Alligator эти настройки тоже были и мы бы могли настроить «чувствительность» нашего будущего индикатора.

Итак, приступим. Откроем этот индикатор Alligator в MetaTrader4 и заглянем в его свойства.

svoystva_alligatora

Из свойств видны параметры Alligator: период челюсти (JawsPeriod) = 233 со сдвигом 8, период зубов (TeethPeriod) = 55 со сдвигом 5, период губ (LipsPeriod)=21 со сдвигом 3. В принципе сдвиг обозначает на сколько нужно сместить эту саму среднюю линию вперед на 8/5/3 бара, здесь ничего сложного, согласитесь, нет.

Все эти свойства помогли нам образно понять, как должен выглядеть аллигатор. Теперь приступим непосредственно к написанию индикатора.

Заходим в «MetaEditor – Файл –Создать» и выберем из списка «Пользовательский индикатор»

mql4

Жмем «Далее», затем попадаем в мастер создания советника, где прописываем Имя советника, автора…. И самое главное –параметры вашего советника. Помните, мы смотрели параметры готового индикатора Alligator, встроенного в торговый терминал MetaTrader по умолчанию? Дак вот, теперь попробуем прописать эти параметры в будущий наш Alligator. Жмем кнопку «Добавить» и выстраиваем значения следующим образом:

parametry

где JawsPeriod –это период челюстей, JawsShift – сдвиг средней iMA на 8 баров вперед, TeethPeriod– это период зубов, TeethShift– сдвиг средней iMA на 5 баров вперед, LipsPeriod – это период губ аллигатора, LipsShift – сдвиг средней iMA на 5 баров вперед. Рядом со всеми именами устанавливаем тип int, т.е. «целое», так как значения будут иметь только вид целого числа!

Жмем «Далее» и попадаем к следующему окну «Параметры отображения пользовательского индикатора. Так как наш будущий индикатор будет располагаться непосредственно на графике с барами, то галочку «Индикатор в отдельном окне» НЕ СТАВИМ!

Переходим к заполнению полей «Индексы». Мы знаем, что наш будущий индикатор состоит всего из трех скользящих средних, поэтому добавляем эти индексы, обозначив их света, как в стандартном Alligator.

pi

Жмем «Готово» и переходим непосредственно к программированию советника на языке MQL4. Итак, Вы попали непосредственно в редактор, где уже есть некоторый текст, который пока непонятен, но это только «пока».

Когда Вы заполняли данные в мастере создания советника Вы, на самом деле уже задавали в советник необходимые параметры, и эти параметры уже введены в будущий индикатор. Здесь все просто. К примеру:

Обозначает, что Alligator будет размещен непосредственно в окне графика.

Означают, что будущий индикатор совмещает в себе 3 параметра, которые помещены в буфер, и меют цвета: голубой, красный и цвет лайма.

Затем следует непосредственно буферизация самих данных индикатора. Как Вы знаете, у нас всего три линии, поэтому записи тоже три; для каждой линии своя. Устанавливается double ExtMapBuffer1[]; устанавливаем квадратных скобках потому, что данные представляют собой массив, который хранит информацию о каждом баре.

Далее следует блок init(), который инициализирует основные переменные, необходимые для работы нашего будущего советника.

В блоке init() у нас отображено:

отвечает за тип, стиль, ширину и цвет для каждой линии. В этой функции 0 означает порядковый номер линии. (всего линий может быть 8, от 0 до 7 соответственно). У нас это обозначает первую линию 0. Это линия челюстей, у неё самый большой период, поэтому она менее чувствительна к изменениям на рынке.

Она необходима для связи переменный – массива с буфером индикатора, где опять же 0 означает порядковый номер линии, ExtMapBuffer1 – установленный при инициализации буферизация первого массива данных. Хотя если следовать логике вещей, то функции SetIndexStyle и SetIndexBuffer должны быть разгруппированы по блочно. Именно в таком случае будет осуществляться наглядность года. Пожалуй, я у себя это и делаю.


Теперь придется поработать ручками и подумать, чего же не хватает нам в блоке init(). А не хватает нам непосредственного смещения линии индикатора, относительно начала графика SetIndexShift() (без этой функции никакого смещения линии iMA в Alligator не будет!).

SetIndexShift (0, JawsShift) – ее следует понимать так «К первой по счету линии устанавливаем смешение из переменной JawsShift»

Приступим к написанию блока int start().

При непосредственном построении линий нашего индикатора на графике, процесс воспроизведения вычислений и построения линий происходит потиково. Это означает, что каждый тик торговый терминал анализирует и переписывает все значения массивов индикатора и заносит в них свои, просто компьютер это делает с такой быстротой, что для нас с вам подобная замена никак не ощущается, но это ощущает наш с вам компьютер. Но мы то знаем, что истории не меняется и можно те данные, которые раньше были вычислены более не вычисляя, а дописывать в массив только новые данные. Делает это конструкцией:

Пропишем условия

Теперь остается только скомпилировать полученный код путем нажатия кнопки F5, открыть MetaTrader и запустить этот индикатор. Вы увидите перед собой Ваш индикатор.

Безусловно, этот индикатор нельзя еще использовать для опоры при совершении сделок на валютном рынке, но это уже Ваше творение, которое функционирует! Этот индикатор написан в самом простом ключе, где нет некоторых важных , но без которых индикатор может уже отображаться в терминале. Профита Вам!

Скачать индикатор (Cayman)

27.10.2010 · Группа авторов · Комментариев нет
Метки: , , , , , , ,  · Рубрика: MetaEditor

Комментировать