Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов — Статьи по MQL5

Рейтинг индикаторов технического анализа

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

Но давайте разберем наиболее необычные, удобные и практичные индикаторы.

Скользящие средние

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

Способ торговли по этому индикатору прост:

  1. Если цена находится выше скользящей средней, значит нужно рассматривать только покупки;
  2. Если цена находится ниже скользящей средней, значит нужно рассматривать только продажи.

Также не редки случаи, когда трейдеры используют две скользящие средние вместе. Одну с меньшим интервалом, другую с большим. На пример 50 и 100. Когда короткая скользящая пересекает длинную, необходимо открывать сделку в сторону пересечения.

Рейтинг индикаторов технического анализа

Volume

Также простейший и один из самых популярных – это Volume или другими словами, объем.

Какого-то определенного метода торговли по этому индикатору нет, но он отлично помогает с понятием общей картины спроса и предложения. На его основе можно понять, какое сегодня настроение у рынка и в какую сторону необходимо открывать сделки.

Рейтинг индикаторов технического анализа

Индекс относительной силы RSI

Индекс относительной силы также имеет большую популярность среди трейдеров, дело в его многофункциональности и простоте. Индикатор может использоваться почти в любой торговой стратегии, как в торговле по тренду, так и в скальпинге.

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

Рейтинг индикаторов технического анализа

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

Метод торговли не отличается от аналогичных индикаторов описанных выше, он лишь объединяет в себе их лучшие функции.

Рейтинг индикаторов технического анализа

Стохастический осциллятор

Этот индикатор относиться к типу осцилляторов и может быть эффективен только в условиях флэта на рынке, то есть к трендовой торговли он недопустим.

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

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

Рейтинг индикаторов технического анализа

ZigZag

Индикатор ZigZag является отличным помощником для построения уровней Фибоначчи и разворотных моделей. Используется во многих стратегиях и помогает грамотно определить такие фигуры как Двойная вершина, Двойное дно, HHLL и прочие.

В использовании прост, достаточно просто нанести индикатор на график и смотреть на него, игнорируя свечи, так пропадут лишние шумы и можно отчетливее разглядеть фигуры.

Рейтинг индикаторов технического анализа

Осциллятор Чайкина

Как и другие осцилляторы, осциллятор Чайкина работает по идентичной методике. Отличает его от других более точный метод построения и возможность применения на локальных трендовых движениях.

В основном все сделки осуществляются при проходе нулевой отметки. Пересечение снизу вверх означает покупки, сверху вниз – продажу.

Рейтинг индикаторов технического анализа

Канал Кельтнера

Канал Кельтнера является трендовым индикатором и успел хорошо себя зарекомендовать. На его основе построено множество стратегий, но основная суть его использования заключается в том, что когда цена прижимается к одной из сторон, торговать следует только в сторону, куда идет цена. Фиксация сделки или возможный разворот цены может наступить при подходе цена к середине канала.

Рейтинг индикаторов технического анализа

Полосы Боллинджера

Индикатор Полосы Боллинджера также выступает в роли канала и весьма схож с каналом Кельтнера, за исключением многофункциональности. Боллинджер отлично используется, как в скальпинге, так и в торговли по тренду.

Комбинирует в себе принцип торговли по Кельтнеру, но также добавляет особенность торговли по выходам из канала. Скальперская стратегия подразумевает ловлю небольших ножей, а где именно ловить, подскажет Боллинджер.

Рейтинг индикаторов технического анализа

Облако Ишимоку

Индикатор является преимущественно трендовым и не подходит для торговли во флэте.

Ключевыми особенностями Облака Ишимоку является его разнообразность. Он смешивает в себе сразу 5 скользящих средних с весьма интересными параметрами. Также показывает зоны поддержки и сопротивлений, направление тренда и дает сигналы на вход и выход из позиции, в общем, мечта.

Рейтинг индикаторов технического анализа

Заключение

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

Построение мультивалютного индикатора с применением множества промежуточных индикаторных буферов

Все началось с того, что я первый раз услышал о кластерных индикаторах из статьи «Теоретические основы построения кластерных индикаторов для рынка FOREX». Тогда меня это очень заинтересовало, и я решил написать нечто подобное в плане мультивалютного анализа рынка. Сначала реализовал свою версию индикатора под кодовым названием MultiCurrencyIndex, в котором по рассчитанным значениям индексов валют происходил расчет классических индикаторов (RSI, MACD, CCI).

А сейчас расскажу, как я перевел данный индикатор на новую платформу MetaTrader 5 в комплекте с MQL5, за исключением того, что вместо расчета CCI буду рассчитывать индикатор стохастический осциллятор (Stochastic Oscillator), как более перспективный (на мой взгляд).

Для начала несколько определений.

Индекс доллара — значение типа double рассчитанное по формуле, любезно предоставленной мне Neutron

,

где USD/YYY — все прямые котировки, типа USD/CHF, XXX/USD — все обратные, типа EUR/USD.

Остальные индексы валют рассчитываются из значений Close валютных пар, содержащие в себе USD.

Основные линии — две линии индикатора, отражающие расчетные данные, относящиеся непосредственно к текущему графику. К примеру, на графике EURUSD это будут линии валют EUR и USD.

Вспомогательные линии — остальные рассчитанные линии индикатора, не относящиеся к текущему графику. К примеру, для того же графика EURUSD это будут линии валют GBP, CHF, JPY ,CAD, AUD и NZD.

Close — значение цены закрытия бара текущего таймфрейма (тип double) для необходимой валютной пары.

Постановка задачи

Для начала нужна постановка задачи.

  1. Произвести синхронизацию графиков, задействованных валютных пар текущего таймфрейма.
  2. Получить доступ к данным Close семи валютных пар EURUSD, GBPUSD, USDCHF, USDJPY, USDCAD, AUDUSD, NZDUSD и разместить их в буферах индикатора, предназначенных для вспомогательных расчетов.
  3. На основании данных, полученных в пункте (2), рассчитать на текущем баре Индекс доллара.
  4. Зная Индекс доллара для текущего бара рассчитать остальные индексы валют.
  5. Произвести данные расчеты (пункты 3 и 4) необходимое количество раз для выбранной длины истории.
  6. В зависимости от выбранного назначения индикатора для каждого из выбранных индексов валют рассчитать значения:
    • индекса Относительной Силы (Relative Strength Index, RSI);
    • Схождений/Расхождений Скользящих Средних (Moving Average Convergence/Divergence, MACD);
    • Стохастический Осциллятор (Stochastic Oscillator);
    • в дальнейшем список может дополняться.

Для всего этого нам потребуется:

31 индикаторный буфер:

  • 0-7 включительно — буферы для отрисовки итоговых линий;
  • 8-14 включительно — буферы основных валютных пар, содержащих в себе USD;
  • 15-22 включительно — буферы индексов валют;
  • 23-30 включительно — буферы промежуточных данных стохастика по типу close/close без сглаживания.

Для выбора назначения индикатора, заведем удобный перечислимый тип enum :

Далее, с помощью команды input , в окно настроек индикаторы выведем пользователю для выбора из этого списка

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

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

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

Рисунок 1. Выбор типа индикатора

Рисунок 1. Выбор типа индикатора

Предоставляем пользователю выбор необходимых валют для отрисовки индикатора и их цвет:

Рисунок 2. Выбор цвета линий индикатора

Рисунок 2. Выбор цвета линий индикатора

Еще некоторые настраиваемые параметры:

Рисунок 3. Настройки индикатора

Рисунок 3. Настройки индикатора

Ограничение в 500 баров для расчета индикатора является искусственным, но является достаточным для отображения идеи расчетов индексов. Но нужно помнить, что каждый индикаторный буфер требует памяти и при выставлении слишком большого размера этой переменной (в миллионы баров), памяти компьютера может не хватить.

Также нам потребуются некоторые глобальные (на уровне индикатора) переменные:

И вот мы подошли к достаточно объемной функции OnInit, в которой будем распределять индикаторные буферы по их назначению.

Так как начальные расчеты идут через Индекс доллара, то для USD устанавливаем возможность только отключить отрисовку данной валюты в индикаторных буферах.

Выглядит это вот как:

Для валюты EUR код в функции OnInit выглядит вот так:

По аналогии с EUR, код будет выглядеть подобно для валют GBP, JPY, CHF, CAD, AUD, и NZD, смещая индексы индикаторных буферов. Код по этим валютам можно посмотреть в прикрепленном файле индикатора.

На этом завершим описание инициализации индикатора.

Далее нам потребуются некоторые пользовательские функции:

  • Расчет RSI по пользовательскому буферу
  • Расчет MACD
  • Расчет SMA по пользовательскому буферу
  • Расчет Stochastic close/close без сглаживания
  • Отрисовка объектов (информационных)
  • Комментарий в правом нижнем углу индикатора (о состоянии индикатора)
  • Инициализация задействованных ТФ валютных пар

Коротко расскажу о каждой из них:

  • Расчет RSI по пользовательскому буферу

где buf_in[] — массив типа double (как таймсерия), period — период индикатора RSI, shift — для какого индекса бара рассчитываем индикатор. Возвращается одно значение типа double.

где buf_in[] — массив типа double (как таймсерия), period_fast — период быстрой МА, period_slow — период медленной МА, shift — для какого индекса бара рассчитываем индикатор. Возвращается одно значение типа double.

где position — для какого индекса бара рассчитываем индикатор, period — период индикатора SMA, price[] — массив типа double (как таймсерия). Возвращается одно значение типа double.

  • Расчет Stochastic close/close без сглаживания

где price[] — массив типа double (как таймсерия), period_fast — период %K линии индикатора, shift — для какого индекса бара рассчитываем индикатор. Возвращается одно значение типа double.

где name — имя объекта, _color — цвет объекта. Функция носит информационный характер. Начиная с верхнего правого угла окна индикатора и далее вниз эта функция выводит названия задействованных валют. Текст валюты имеет такой же цвет как и линия индикатора, относящаяся к этой валюте.

  • Комментарий в правом нижнем углу индикатора

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

И наконец, заключительная функция и одна из самых важных — это:

  • Инициализация задействованных ТФ валютных пар

Входных параметров не имеет.

В MetaTrader 5 история храниться в виде данных минутного ТФ по каждому инструменту. Поэтому, прежде чем работать с программой, при запуске терминала происходит построение всех необходимых (задействованных) графиков на основании все тех же данных минутного ТФ. Также построение происходит при переключении ТФ текущего трафика или при попытке обращения к графику данного ТФ из кода программ MQL5.

  • при первичной загрузке терминала необходимо дождаться, пока произойдут построения (возможно даже фоновые, то есть пользователь их не видит) необходимых ТФ задействованных валютных пар.
  • синхронизировать нулевой бар по всем задействованным валютам, для точного отображения индикатора. То есть, если на текущем графике пришел новый тик, который открывает новый бар (к примеру, часовой), то нужно дождаться поступления таких же тиков по другим валютным парам, которые также в свою очередь откроют новый бар (новый час). Только после этого приступать к расчету индикатора для нового бара.

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

В специально объявленный для этого массив собираем количество доступных баров для всех задействованных валютных пар. Проверяем каждое значение на минимально необходимое количество истории (переменная «количество баров для расчета индикатора» в настройках индикатора). Если доступная количество баров в истории по какому либо инструменту меньше значения этой переменной, то считаем, что построение пока не прошло успешно, и заново опрашиваем количество доступных данных. Как только по всем валютным парам доступной истории будет больше, чем запрошено пользователем — считаем, что эта часть инициализации выполнена успешно.

Вторая часть задачи синхронизации реализуется с помощью функции CopyTime.

Копируем в предназначенный для этих целей массив время открытия нулевого бара каждого задействованного инструмента. Если все элементы этого массива одинаковые и отличные от нуля, то считаем, что у нас нулевой бар синхронизирован и начинаем расчет индикатора. Более детально посмотреть, как это реализовано, можно в коде прикрепленного индикатора.

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

Определяем количество баров, необходимое для расчета:

Производим синхронизацию графиков валютных пар:

Далее с помощью функции CopyClose копируем данные Close всех необходимых валютных пар в индикаторные буферы, специально для этого зарегистрированные. (Более подробно о доступах к данным других ТФ текущего инструмента и/или другого инструмента можно прочитать в справке)

Если по какой-либо причине функция не скопировала данные и вернула ответ -1, то в комментарий выводим сообщение об ошибке по валютной паре, и ждем поступления нового тика по текущему инструменту.

Далее в цикле (от 0 до limit) производим:

  • Расчет индекса доллара;
  • Расчет индексов других валют на основании данных Close и индекса доллара для текущего бара;

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

Если было изъявлено желание взглянуть на RSI по индексам, то выполняем нижеприведенный код:

Если захотелось увидеть MACD по индексам, то нам сюда (правда пока реализовано только на основе SimpleMA, на основе EMA будет реализовано позже):

Если Stochastiс, то необходимо сначала рассчитать линию %K, а потом сгладить ее методом SimpleMA. Итоговую сглаженную линию отобразить на графике.

На этом заканчивается расчеты индикатора. На рисунках 4-6 приведено несколько картинок разного вида индикатора.

Рисунок 4. RSI по индексам

Рисунок 5. MACD по индексам валют

Рисунок 6. Stochastiс по индексам валют

Заключение

При реализации индикатора MultiCurrencyIndex я воспользовался неограниченным количеством индикаторных буферов в MQL5, что значительно упростило код. Данная статься является примером такого подхода. Для достоверных показаний индикатора, показан алгоритм синхронизации разных инструментов относительно нулевого бара. А также был показан один из возможных алгоритмов доступа к данным других инструментов относительно символа, к которому прикреплен индикатор.

Так как цель статьи — показать возможность работы с огромным количеством индикаторных буферов, то приведенные функции для вычисления индикаторов по пользовательским массивам данных не являются самыми оптимизированными, чтобы не перегружать читателя, но достаточными дли выполнения необходимых расчетов.

Есть много «за» и «против» кластерного анализа рынка Forex. Торговые системы на основе такого подхода есть в свободном доступе, и имеются обсуждения на разных форумах, в том числе и на MQL4.Community. Поэтому принципы торговли по данному индикатору в этой статье не рассматриваются.

Другие статьи автора

Да MACD не самое удачное решение, как оказалось, для построения классических индикаторов по индексам. Нужно было ограничиться только индикаторами, у которых значения могут быть в определенном диапазоне ( к примеру 0-100) тогда бы не было подобных ситуаций.

Мог бы автор или кто-то ещё добавить в представленный индикатор тот же самый алгоритм расчёта и построение линий по MA, как это сделано в оригинальном индикаторе для МТ4?

Спасибо большое Автору за индикатор! Не могли бы добавить возмойность рассчета RSI по цене Typical or Weighted пожалуйста?

Лучшие индикаторы форекс

Открытие торгового счета Форекс

Индикаторы Форекс — это математически просчитанное преобразование цен (Open, Close, High, Low) и объемов за определенный промежуток времени, на определенной валютной паре, вместе или раздельно, которое способно прогнозировать дальнейшие поведение рынка. Лучшие индикаторы дают трейдеру возможность выбрать правильный момент для открытия или закрытия позиции.

Перепробовать в работе все индикаторы просто нереально. На нашем сайте представлено большое количество индикаторов с описанием. Скорее всего вам не составит труда найти в этом списке индикаторы для себя. Индикаторы можете скачать бесплатно прямо сейчас. Все индикаторы разбиты на несколько групп по типам:

У нас можно в любое время скачать индикаторы для «Форекс», которые:

  • Представлены во множестве различных типов, например, трендовые, осцилляторы, для поддержки, сопротивления, объема, Фибоначчи, Билла Вильямса и другие (полный перечень есть на сайте);
  • Являются одним из ключевых инструментов для обеспечения эффективной работы трейдера;
  • Устанавливаются на график цены или в отдельное окно;
  • Позволяют правильно проанализировать рынок;
  • Используются для составления надежных прогнозов дальнейшего изменения цены;
  • Помогают разрабатывать грамотную стратегию;
  • Способны предотвратить принятие ошибочных решений;
  • Одинаково полезны – как для новичков, так и профессионалов.

Поможем настроить для работы выбранный Вами индикатор.

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

Технические индикаторы — это набор инструментов, служащих для анализа валютного рыка. Индикаторы необходимы каждому, и новичку и профессионалу. У рынка форекс есть всего два состояния. Первое, когда цена довольно интенсивно движется вверх или вниз — называется трендом. Второе, когда цена, без особых колебаний движется ровно — называется флэтом. По этому фактически существуют основные два типа индикаторов. Трендовые — для определения тренда и его направления. Осцилляторы — для отображения тенденций флэта. Существуют и другие типы индикаторов: индикаторы поддержи/сопротивления, индикаторы по Фибоначчи, индикаторы объема, индикаторы Билла Вильямса и др. Индикаторы могут устанавливаться на график цены, а также в отдельное окно.

Индикаторы без перерисовки.

Перерисовывающийся индикатор — такой индикатор, который меняет свои значения на сформировавшихся барах. Почти все индикаторы меняют своё значение только на 0 баре(тот который ещё не закрылся), но перерисовывающиеся могу это сделать и на других барах. Чем это плохо? — тем что когда Вы смотрите на историю сигналов индиктаора — Вы видите идеальную картинку, где все входы просто отличны. Но в реальности так не будет, Вы увидите сигнал тогда когда уже поздно входит, т.е. индикатор поставит стрелку сразу на 4-10 баров в истории, но когда эти бары формировались перерисовывающийся индикатор даже не помышлял сигнализировать.

Используйте в работе только индикаторы без перерисовки!

  • Стандартные Индикаторы технического анализа — описание стандартных индикаторов в mt4 — выявляющие тренд и указывающие его направление и силу — предсказывающие развороты трендов — индикаторы рисующие линии сопротивления и поддержки — в основе индикаторов этого типа лежат вычисления по Фибоначчи — индикаторы Билла Вильямса — индикаторы показывающие количество сделок или транзакций в определенный период времени — показывающие различную информацию и не вошедшие в другие разделы

Индикаторы находятся в архивах zip. Выберите нужный индикатор, бесплатно скачайте его. Извлеките из архива, прочитайте инструкцию, если она есть. Перенесите индикатор в папку программы, предназначенной для индикаторов, обычно это indicators. Запустите торговую платформу, теперь можно устанавливать индикатор на график валютной пары.

Кстати, если Вы не нашли нужного индикатора или нужны поправки в уже имеющемся то можете обратиться к нашему программисту mql4.

Источник https://www.forex.blog/rejting-indikatorov-tehnicheskogo-analiza/

Источник https://www.mql5.com/ru/articles/83

Источник https://tradexperts.ru/indikatory-forex

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

span.hidden-link { color: #DCDCDC; /*-цвет ссылки-*/ text-decoration: underline; /*-подчеркивание-*/ cursor: pointer; /*-указатель в виде пальца-*/ }