SMI индикатор — Стохастик момент индекс

Рейтинг самых лучших брокеров бинарных опционов 2020:
  • Бинариум
    Бинариум

    1 место во всех рейтингах! Лучший брокер бинарных опционов по отзывам трейдерам! Прекрасно подходит для новичков. Получите свой бонус за регистрацию счета:

Индикаторы RSI, MACD, CCI, EMA, SMI, как пользоваться, настройки и описание

Трейд – это интересный и достаточно математический процесс. Рекомендую для анализа графиков использовать две платформы: Tradingview и Coinigy.

Для удобного анализа заведите аккаунты на двух платформах:

  • Первая (Tradingview) – удобная, чтобы смотреть все Топовые монеты и Топовые биржи.
  • Вторая (Coinigy) – использует инструментарий Tradingview, но есть очень много монет из разряда так называемых шлак-коинов и представлены биржи из Топа и не из Топа, где также происходят хорошие пампы: Cryptopia и т.д.

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

Платные аккаунты, что дают?

Несколько деталей по Coinigy и Tradingview, какие возможности у платных/бесплатных аккаунтов, в чем отличия.

Coinigy

Платформа Coinigy предоставляет вариант пробной подписки/использования сроком на месяц с дальнейшей платной пролонгацией .

После регистрации Вам будет предложено купить один из пакетов:

Перейдя по кнопке (красный круг) увидите цены:

Лучшие российские брокеры бинарных опционов:
  • Бинариум
    Бинариум

    1 место во всех рейтингах! Лучший брокер бинарных опционов по отзывам трейдерам! Прекрасно подходит для новичков. Получите свой бонус за регистрацию счета:

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

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

Для подключения заходите в «Настройки – API»:

Для более детального разбора действий нажимаете на Help – Tour This Page и платформа проводит Вам «экскурсию» с указанием, что нужно сделать для добавления API.

Выбираете Add New Exchange. Появляется список криптобирж:

Ставите нужную Вам и проходите авторизацию. Далее привязываете API биржи, где у Вас активы. После Вы можете торговать одновременно по нескольким активам разных бирж, но с одной платформы. Эта функция удобная, некоторые трейдеры ею пользуются. Рассказать о ней мы должны, но советовать использовать или нет – Ваше право. Как и хранение крипты/фиата на биржах.

Tradingview

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

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

На этом базовые моменты про данные платформы мы проговорили. Теперь более детально о торговых индикаторах и их пользе в трейде.

Торговые индикаторы, как пользоваться

Индикаторов очень много, каждый по-своему полезен. Мы рассмотрим самые легкие в использовании.

Индикатор RSI

RSI — relative strength index (индекс относительной силы) — индикатор технического анализа, определяющий силу тренда и вероятность его смены. Простыми словами, это индикатор перепроданности/перекупленности актива/монеты. Хорошо помогает определить зоны покупки/продажи . Как и другие индикаторы – 100% вероятности для входа/выхода из позиции он не дает, но довольно хорошо показывает настроение рынка.

Для настройки индикатора заходите на Tradingview (все аналогично и для Coinigy). Нажимаете на вкладку Indicators, задаете значение – RSI. И нажимаете на строку с индикатором.

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

Во вкладке Style стоят значения (по умолчанию) 70 и 30. Иногда удобно применять 80 и 20. Значение цены не задерживается очень долго ниже 30 и выше 70 (то есть всегда есть коррекция вверх или вниз, соответственно). Но тут уже зависит от Вашего трейда и целей.

Индикатор хорошо работает на больших таймфреймах (ТФ) от 30 минут до 4 часов-суток. На малых ТФ он полезен, но необходимо применять дополнительные индикаторы в комплексе.

Пример, ETHUSD, Bitstamp, ТФ — 30 минут.

Зеленые круги – зоны перепроданности (то есть локальные дипы) на RSI и фиолетовые соответствуют им по цене.

Индикатор CCI

CCI – Commodity Channel Index, индекс товарного канала – это осциллирующий индикатор, который помогает определять, когда актив является перекупленным или перепроданным . Находим его по той же схеме, что и RSI.

Стандартные значения: 20 размер окна и -100 и +100 границы канала.

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

Хорошо работает на различных ТФ, включая минутные. Но, бывает, что выдает и ложные сигналы (красный круг) .

Поэтому его также необходимо использовать в комплексе с другими индикаторами, как минимум, RSI.

Индикатор MACD

MACD – схождение и расхождение скользящих средних (от англ. moving average convergence divergence) – это индикатор технического анализа, используемый для определения начала нового тренда , путем анализа взаимосвязи трех скользящих средних.

Поиск индикатора – по тому же пути, что и предыдущих.

Стандартные значения: 12, 26, 9. Советую оставить и не менять их. Пересечение синей линией коричневой говорит о смене тренда и начале роста и наоборот.

Хорошо работает на разных ТФ. Для скальпинга тоже можно использовать. Пожалуй, один из базовых индикаторов, которые должны быть включены на каждом графике, как и RSI.

Индикатор EMA

EMA (Exponential Moving Average) — это экспоненциальное скользящее среднее, определяется путем добавления к предыдущему значению скользящего среднего определенной доли текущей цены закрытия. При использовании экспоненциальных скользящих средних больший вес имеют последние цены закрытия.

Во вкладке индикаторы он подписан как Moving Average Exponential. Обычно используется ЕМА 50 и ЕМА 200 для определения тренда быков или медведей . Правило:

  • ЕМА 50 выше ЕМА 200 – быки в тренде.
  • ЕМА 200 выше ЕМА 50 – медведи в тренде.

На графике видим, что ЕМА 200 (зеленая) выше ЕМА 50 (синяя), тренд пошел вниз после пересечения .

Трейдера используют разные наборы EMA для различных ТФ. Это могут быть пары или 4-5 разных ЕМА одновременно. Но для новичков достаточно ЕМА 50 и ЕМА 200.

Индикатор SMI

Полезный также индикатор SMI. Stochastic Momentum Index – это осциллятор, являющийся модификацией обычного Стохастика и практически ничем не отличающийся от него.

О нем уже не раз говорили, но повторим для закрепления. В случае показателя -40 – можно покупать, +40 – продавать. Для новичков советую оставить значения по умолчанию и ничего не менять в настройках.

Хорошо работает на разных ТФ, подходит для скальпинга. Он также не идеален, но полезен в работе с несколькими индикаторами для проверки точности.

Индикатор ADX and DI

И последний индикатор, о котором сегодня поговорим, это ADX and DI. Состоит система из индекса среднего направления (ADX, average directional movement index) и индикатора направленности движения (DMI, directional movement index).

В настройках ставите 14, 30, 20. Это оптимальные настройки. Красная линия – это медведи, зеленая – быки, коричневая – сила тренда.

Зеленая пересекла красную. Тренд стал бычьим.

Есть несколько особенностей:

  • Если коричневая – сила тренда выше 40, тогда тренд скоро может утратить свою силу.
  • Если 60 или 80 — коррекция тренда очень близка.
  • Когда коричневая находится на уровнях 10-20 – это набор силы, выше 20 до 40 – текущий тренд набирает оборот.

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

Данный индикатор работает на разных ТФ. Особенно хорошо для больших ТФ – 1 день или 1-4 часа.

Еще один совет. Для удобного применения нескольких индикаторов, не стоит накладывать все на один график. Можно сделать несколько вкладок браузера с разными индикаторами в парах. Трейдеры очень часто используют от 2 мониторов, чтобы «увидеть» все детали для входа/выхода из сделки. Профита всем!

Хотите зарабатывать на крипте? Подписывайтесь на наши Telegram каналы!

Индекс стохастичекого моментума

Индекс Стохастического Моментума, включает в себя Стохастический Моментум и выражается формулой:

SM ( q ) — это Стохастический Моментум с q -дневным периодом.

DS -Стохастик принимает только положительные значения, SMI — его биполярный (со знаком плюс или минус) аналог. По форме их гра­фики ничем не отличаются.

Исследуем поведение кривой Индекса Стохастического Моментума на рисунке 3-6, где индекс имеет порядок 13 дней ( q = 13) и 25-дневная экс­понента. Индикатор колеблется в диапазоне от -100 до +100. Цена счи­тается достигшей высокого уровня, когда индикатор поднимается выше границы перекупленности (в нашем примере это +40). Цену назы­вают низкой, когда индикатор опускается ниже границы перепродан­ное™ (в нашем примере -40). Проходящая рядом Сигнальная Линия пред­ставляет собой экспоненту от SMI ( q , r , s ). Обычно их расхождение составляет от 3 до 12 баров. У цены имеется восходящая тенденция, ког­да график SMI проходит над Сигнальной Линией; тенденция нисходя­щая, когда SMI идет под Сигнальной Линией.

Двойное сглаживание в Индексе Стохастического Моментума дос­тигается с помощью любой пары параметров из q , r , s ; при этом остав­шийся третий параметр остается неизменным. Легко понять почему параметры гиб сглаживающие: они непосредственно входят в расчет экспоненциальных скользящих средних. В параметр q , по которому вы­числяется SM ( q ), неявно тоже входит сглаживание. На рисунке 3-7 ви­ден эффект сглаживания, который дает накопленная (кумулятивная) сумма Стохастического Моментума. Результат вполне сравним с резуль­татом сглаживания с помощью экспоненты по цене закрытия.

МОМЕНТУМ СТОХАСТИКА ТОЧНО ВОСПРОИЗВОДИТ КОЛЕБАНИЯ ЦЕНЫ

Если Стохастический Моментум имеет очень большой порядок SM ( q ), где q — очень большое число), то график Стохастического Моментума воспроизводит форму кривой цены. В средней части рисунка 3-8 пред­ставлен Момент стохастика, SM (300), при q = 300. Внизу — график чис­лителя Индекса Стохастического Момента. По существу, очертания этих

двух графиков одинаковы. SMI приводит амплитуду колебаний в преде­лы от +100 до -100. Если убрать шкалу с правой стороны диаграммы, то пользователю будет трудно определить, какая из двух кривых — цена закрытия, а какая — Стохастический Моментум.

На рисунке 3-9 показан Стохастический Моментум с большим перио­дом (первое сглаживание с q = 300 дням), где второе сглаживание прово­дится 5-дневной экспонентой. В результате мы получили более сглажен­ную кривую. Поскольку мы использовали экспоненту малого порядка, сдвиг получился небольшой.

Двойное сглаживание на нижнем графике рис 3-9 получено с помо­щью параметров q и г. Задержка возникает только из-за r -дневной экс­поненты. q -дневный Стохастический Моментум не дает никакой задер­жки, хотя имеет большой порядок- q ^ SOO дней. Это крайне важное свойство индикаторов дважды сглаженного Моментума: как правило, одна сглаживающая функция берется по большому интервалу, а другая по более короткому или равному. При этом (теоретически) только одно из двух сглаживании приводит к задержке. Разумеется, это свойство не имеет места, если скользящие средние применяются к цене: 300-днев-

ный интервал для скользящего среднего, примененного к цене, произве­дет огромную задержку. Такая особенность индикаторов повторно сгла­женного моментума является основой их своевременности и сглаженно­ сти, что позволяет их использовать в качестве индикаторов цен товаров и акций. Два наиболее распространенных в наши дни индикатора — Мед­ ленный Стохастик и MASD (схождение/расхождение скользящих сред­них), и в расчет каждого из них входит повторное сглаживание.

В действительности такой длинный период, как 300 дней, использу­ется редко. На рисунке 3-10 показан график стохастики с q = 20-ти дням и порядком сглаживающей экспоненты г = 5 дней. (При s = 1, пара q , r обеспечивает двойное сглаживание.) После применения двойного сгла­живания график Стохастического Моментума (средний график) не про­изводит задержек и относительно очищен от шумовых помех. Для того чтобы поведение кривых было сравнимым, возьмем параметры SMI име­ ющие те же значения, что и параметры SM : SMI ( q , r , s ) = SMI (20,5,1). Расхождения начинают появляются при меньшем временном интерва­ле. Если индикатор расходится с ценой в сторону убывания, как это про­исходит в областях А — В или А — С, то это указывает на возможное завершение подъема цены. Расхождение в сторону возрастания проис-

ходит в областях Н — J и Н — К. В целом, за исключением областей F — G , формы кривых на среднем и нижнем участках почти идентичны.

Графики Медленного Стохастика и Индекса Стохастического Момен-тума сравниваются на рисунке 3-11. В смысле воспроизведения формы они достаточно хорошо аппроксимируют друг друга. Небольшое несоот­ветствие между двумя графиками возникает из-за того, что в формуле SMI применяется 5-дневное экспоненциальное скользящее среднее, а в медленном стохастике — 3-дневное простое скользящее среднее.

Увеличивая порядок сглаживающей экспоненты с 5 дней до 20, по­лучим SMI ( q , r , s ) = SMI (20,20,1), на рисунке 3-12 представлен график SMI и разнящийся с ним теперь график Медленного Стохастика. Тен­денция Индекса Стохастического Моментума стала похожей на тенден­цию цены. Для сравнения приведен Медленный Стохастик. Основные точки разворота отражены почти вовремя, с задержкой меньшей или равной той, которая возникает, когда скользящее среднее того же по­рядка применяется непосредственно к цене. Теперь расхождения отчет­ливо видны в областях: В, С, D , Е, и F . Продолжающееся расхождение с началом в В и заканчивающееся в С сигнализирует о конце подъема цены, или о начале спада.

В области А, график SMI , так же как и график цены, имеет восходя­щую тенденцию. Медленный Стохастик в этой области находится во флэ­те, в зоне перекупленности. Как видим, Индекс Стохастического Момен-тума, плавно меняясь, показывает тенденцию цены и отмечает главные точки разворотов в моментах своего расхождения с ценой.

Итак, мы можем использовать Медленный Стохастик в качестве ин­струмента входа (или выхода) в рынок. если одновременно применять Индекс Стохастического Моментума для определения тенденции движе­ния цены. Пример такого подхода мы разберем на рисунке 3-13: SMI ( q , r , s ) = SMI (20,60,1) определяющий тренд,одновременно используется 20-днев­ный Медленный Стохастик. Отсутсвие разброса SMI обеспечивается уве­личением порядка экспоненты до 60 дней, что приводит к дополнитель­ной, но по существу очень маленькой задержке в основных точках разворота. Расхождение на графике SMI теперь имеет место только в областях D и G . Прежние расхождения в областях В, С, Е и F теперь от­сутствуют. Главной точке разворота в марте предшествует долгое расхож­дение в области G , затем она подтверждается расхождением Медленного Стохастика в области С.

Длительные тенденции часто плохо отражаются индикаторами и ос­цилляторами. Вообще говоря, когда длительность тенденции превыша­ет естественный период индикатора, индикатор может неправильно оп­ределять тренд. В средней части рисунка 3-14 представлен график SMI ( q , r , s ) = SMI (20,20,1); он сглажен и воспроизводит колебания цены без временного сдвига. Однако, он дает ложные сигналы при отсутствии устойчивой тенденции в течении очень долгого периода. Начиная с апре­ля, индикатор указывает на восходящую тенденцию, в то время как фак­тически цена продолжает падать. График SMI (20,150,1) в нижней части рисунка 3-14, показывает корреляцию между индикатором и ценой, что достигнуто исправлением порядка сглаживания. Своевременность и сгла­женность сигнала достигаются ценой очень маленькой дополнительной задержки. Она возникает из-за наименьшей из двух величин q и г в фор­муле Индекса Стохастического Моментума, SMI ( q , r , l ). Наибольшая ве­личина из двух параметров двойного сглаживания ( q , r ) фильтрует точ­ки разворота, оставляя только основные из них. Последовательность кривых на рисунке 3-14 демонстрирует как слишком продолжительная нисходящая тенденция, не правильно представленная на втором графи­ке, корректно отразилась, когда мы увеличили значение параметра г с 20 до 150.

Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы

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

Введение

Первая часть статьи «Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы» — это описание разработанных на MQL5 индикаторов и осцилляторов, которые описаны в книге Уильяма Блау (William Blau) «Моментум, направленность и расхождение».

Описанные в статье индикаторы и осцилляторы приведены в исходном коде на языке MQL5 в прикрепленном к статье архивном файле «Blau_Indicators.zip».

Основные положения анализа по Уильяму Блау

Технический анализ Уильяма Блау состоит из четырех этапов:

  1. По данным ценового ряда (период q) рассчитывается показатель; строится график показателя. График показателя не отражает основную тенденцию ценового движения и не выделяет поворотные точки.
  2. Полученный показатель сглаживается методом EMA один раз (период r), второй (период s), третий (период u); строится график сглаженного показателя. График сглаженного показателя достаточно точно и с минимальным запаздыванием аппроксимирует (воспроизводит) колебания ценовой кривой, выделяет тенденцию ценового движения и поворотные точки, устраняет ценовой шум.
  3. Сглаженный показатель нормируется; строится график нормированного сглаженного показателя (индикатор). Нормировка позволяет значение индикатора интерпретировать как степень перекупленности или перепроданности рынка.
  4. Нормированный сглаженный показатель (индикатор) сглаживается методом EMA один раз (период ul); строится осциллятор — график индикатора и сигнальной линии, добавляются уровни перекупленности и перепроданности рынка. Осциллятор позволяет различать сигналы о перекупленности/перепроданности рынка, об окончании тренда и о развороте ценового движения.

Индикаторы

В статье рассмотрены следующие группы индикаторов:

По каждой группе индикаторов представлены:

  • Индикатор сглаженного показателя;
  • Индекс нормированного сглаженного показателя;
  • Осциллятор, основанный на индексе нормированного сглаженного показателя.
  • Детальный анализ подхода Уильяма Блау в техническом анализе графика цены;
  • Детальное описание алгоритма и программного кода каждого индикатора из группы индикаторов, основанных на моментуме.

В качестве метода сглаживания Уильям Блау использует экспоненциальное скользящее среднее (англ. Exponential Moving Average, EMA). Экспоненциальное скользящее среднее определяется путем добавления к предыдущему значению скользящего среднего определенной доли текущей цены.

При использовании экспоненциальных скользящих средних больший вес имеют последние цены. Функция расчета EMA:

  • EMA(k,n) — экспоненциальное скользящее среднее периода n на момент периода k;
  • price(k) — цена на момент периода k.

В «Руководстве пользователю к клиентскому терминалу MetaTrader» в разделе «Аналитика/Технические индикаторы/Трендовые индикаторы/ Moving Average » представлено описание четырех видов скользящих средних и методов их использования в техническом анализе (см. также iMA).

Библиотека функций для расчета скользящих средних расположена в файле . Нас интересует функция ExponentialMAOnBuffer(), которая заполняет выходной массив buffer[] значениями EMA от входного массива price[]. Однако, представленная в реализация функции ExponentialMAOnBuffer(), имеет тот недостаток, что не работает с периодом n=1.

См. в исходном коде:

Однако Уильям Блау в своей книге использует период сглаживания n=1 как отсутствие сглаживания. Поэтому в код функции ExponentialMAOnBuffer() были внесены изменения:

и получилась функция ExponentialMAOnBufferWB(). Код этой функции расположен в файле «WilliamBlau.mqh».

В файле «WilliamBlau.mqh» также представлены функции:

  • Функция PriceName() возвращает наименование типа цены:
  • Функция CalculatePriceBuffer() рассчитывает массив цен указанного типа цены:

Ценовая база и временной период ценового графика

Уильям Блау рассматривает цены закрытия и дневной период. Разработанные в рамках статьи индикаторы позволяют выбирать ценовую базу (см. ценовые константы), временной период ценового графика определяется таймфреймом графика (см. периоды графиков).

1. Индекс истинной силы

Рассматриваемые индикаторы (см. вложение):

  1. Blau_Mtm.mq5 — индикатор темпа (q-периодный моментум; сглаженный q-периодный моментум);
  2. Blau_TSI.mq5 — индекс истинной силы (нормированный сглаженный q-периодный моментум);
  3. Blau_Ergodic.mq5 — эргодический осциллятор (основан на индексе истинной силы).

В «Руководстве пользователю к клиентскому терминалу MetaTrader» в разделе «Аналитика/Технические индикаторы/Осцилляторы/Momentum» представлено описание встроенного в клиентский терминал MetaTrader 5 технического индикатора темпа (Momentum) и способов его использования в техническом анализе (см. также iMomentum) В отличие от моментума Уильяма Блау, встроенный в терминал индикатор iMomentum рассчитывает моментум как абсолютное изменение цены.

Пример реализации на MQL5 индикатора истинной силы (TSI) Уильяма Блау представлен в статье «Как написать индикатор в MQL5».

1.1.1. Технический анализ с использованием индикатора темпа (моментум)

Объектом технического анализа служит график цены финансового инструмента. Каждый элемент графика — это ценовой бар. Параметры ценового бара: время открытия, цена открытия, максимальная цена, минимальная цена, цена закрытия, торговые объемы и другие. Ценовой бар формируется и отражает поведение цены в течение некоторого дискретного периода времени (таймфрейм графика).

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

Что предложил Уильям Блау. Первое: моментум. Уильям Блау рассчитал моментум как относительное изменение цены [закрытия] за каждый [дневной] период времени; построил индикатор темпа (моментум). С математической точки зрения функция моментума — это первая производная функции цены.

Рис. 1.1. Индикатор темпа (моментум; q-периодный моментум)

Моментум отображает однопериодные ценовые колебания, показывает скорость (величину) и направление изменения цены за период, но не отражает основную тенденцию ценового движения и не выделяет поворотные точки.

Второе: сглаживание. Скользящее среднее от моментума (накопленная сумма однопериодных ценовых колебаний) практически точно воспроизводит как основные так и локальные колебания кривой цены. На рис. 1.2(a) в подокнах I, II представлены индикаторы темпа (сглаженный моментум) с периодами скользящего среднего, соответственно 20, 300.

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

Рис. 1.2(a). Индикатор темпа (сглаженный q-периодный моментум)

Рис. 1.2(b). Индикатор темпа (сглаженный q-периодный моментум)

На рис. 1.2(a) в основном окне представлены индикаторы EMA с периодами 5, 20, 100. Незначительное увеличение периода скользящего среднего порождает запаздывание, и скользящее среднее практически становится неспособным воспроизводить колебания кривой цены.

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

На рис. 1.2(b) в подокне I представлен индикатор сглаженного моментума (период скользящего среднего 20); в подокнах II и III представлены индикатор дважды и трижды сглаженного моментума (периоды скользящего среднего 5, 3). Повторное сглаживание устраняет ценовой шум, но добавляет незначительный сдвиг кривой (запаздывание).

Четвертое: расхождение как сигнал о смене тенденции. При сглаживании моментума с малым периодом скользящего среднего может возникнуть расхождение тенденции кривой сглаженного моментума с тенденцией кривой цены.

На рис. 1.2(a) расхождение наблюдается на графике в подокне I, а на рис. 1.2(b) — в подокнах I, II, III (направление изменения цены расходится с направлением изменения сглаженного моментума). Подобные расхождения часто свидетельствуют о смене тенденции. С математической точки зрения расхождение — это функция от периода сглаживания.

Надежность интерпретации расхождения как сигнала о смене тенденции можно повысить, если рассматривать расхождение только в области перекупленности или перепроданности рынка (см. п. 1.2.1).

1.1.2. Определение моментума

Моментум (Momentum) — это относительное однопериодное изменение цены.

Знак моментума показывает направление изменения цены: положительный моментум — цена выросла за период, отрицательный — цена снизилась за период. Величина моментума — это относительная скорость изменения цены (первая производная от цены).

Рис. 1.3. Определение моментума

  • price — цена [закрытия] текущего периода;
  • price[1] — цена [закрытия] предыдущего периода.

Уильям Блау рассматривает моментум, как разницу между ценой [закрытия] текущего периода и ценой [закрытия] предыдущего периода. Уильям Блау, при расчете однопериодного моментума использует цены двух периодов (текущего и предыдущего периодов).

Введем в формулу расчета моментума показатель периода q — число временных периодов, участвующих в расчете (по Уильяму Блау q=2).

Формула q-периодного моментума:

  • q — число временных периодов ценового графика, участвующих в расчете моментума;
  • price — цена [закрытия] текущего периода;
  • price[q-1] — цена [закрытия] (q-1) периодов назад.

В полученной формуле двухпериодному нашему моментуму соответствует однопериодный моментум Уильяма Блау.

Формула сглаженного q-периодного моментума:

  • price — цена [закрытия] — ценовая база ценового графика;
  • q — число временных периодов ценового графика, участвующих в расчете моментума;
  • mtm(price,q)=price-price[q-1] — q-периодный моментум;
  • EMA(mtm(price,q),r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к q-периодному моментуму;
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

1.1.3. Mtm(price,q,r,s,u) — индикатор темпа (моментум). Спецификация

  • Имя файла: Blau_Mtm.mq5
  • Наименование: Индикатор темпа (q-периодный моментум; сглаженный q-периодный моментум) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется моментум (по умолчанию q=2);
    • r — период 1-й EMA, применительно к моментуму (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется. Например, если задать Mtm(price,2,20,5,1), то получится дважды сглаженный моментум, а если задать Mtm(price,2,1,1,1), то получится несглаженный моментум;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

1.2. Индекс истинной силы

1.2.1. Технический анализ с использованием индекса истинной силы

Продолжение: начало см. в п. 1.1.1.

Пятое: нормировка. Приведение через нормировку величин сглаженного моментума к единичному масштабу (отображение в интервале [–1,+1]) позволяет определять степень перекупленности или перепроданности рынка. Доумножение величин нормированного сглаженного моментума на коэффициент 100 преобразовывает числовой ряд в процентный ряд (отображение в интервале [–100,+100]).

Рис. 1.4. Индикатор нормированного темпа (нормированный сглаженный моментум)

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

1.2.2. Определение индекса истинной силы

Индекс истинной силы (True Strength Index, TSI) — это индикатор нормированного темпа (нормированный сглаженный q-периодный моментум). Приведение величин сглаженного моментума к единичному масштабу (отображение в интервале [–1,+1]) обеспечивается нормировкой каждой величины сглаженного моментума (накопленная сумма сглаженных q-периодных ценовых колебаний) на величину сглаженного моментума, взятую по абсолютному значению.

Доумножение на коэффициент 100 изменяет интервал отображения [–100,+100] (проценты). Нормировка позволяет значение TSI интерпретировать как степень перекупленности (положительное значение) или перепроданности (отрицательное значение) рынка.

Формула индекса истинной силы:

  • price — цена [закрытия] — ценовая база ценового графика;
  • q — число временных периодов ценового графика, участвующих в расчете моментума;
  • mtm(price,q)=price-price[q-1] — q-периодный моментум;
  • |mtm(price,q)| — абсолютное значение q-периодного моментума;
  • Mtm(price,q,r,s,u) — трижды сглаженный q-периодный моментум;
  • EMA(. r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к показателю [соответственно: 1) к q-периодному моментуму и 2) к абсолютному значению q-периодного моментума];
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

1.2.3. TSI(price,q,r,s,u) — индекс истинной силы. Спецификация

  • Имя файла: Blau_TSI.mq5
  • Наименование: Индекс истинной силы (нормированный сглаженный q-периодный моментум) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется моментум (по умолчанию q=2);
    • r — период 1-й EMA, применительно к моментуму (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • (не обязательно) два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

1.3. Эргодический осциллятор

1.3.1. Технический анализ с использованием эргодического осциллятора

Продолжение: начало см. в пп. 1.1.1, 1.2.1.

Шестое: области перекупленности и перепроданности рынка. Единичный интервал [–1,+1] или процентный интервал [–100,100] в пределах которого изменяются значения нормированного сглаженного моментума, позволяет выделять области перкупленности (overbought) или перепроданности (oversold) рынка.

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

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

Восьмое: тенденция ценового движения. Тенденция ценового движения восходящая (повышательный тренд), когда основная линия (эргодика) проходит над сигнальной линией. Тенденция ценового движения нисходящая (понижательный тренд), когда основная линия (эргодика) проходит под сигнальной линией.

Рис. 1.5. Эргодический осциллятор

1.3.2. Определение эргодического осциллятора

  • Ergodic() — эргодика — индекс истинной силы TSI(price,q,r,s,u);
  • SignalLine() — сигнальная линия — экспоненциальная скользящая средняя периода ul, примененная к эргодике;
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA эргодики. Например, если используется двойное сглаживание Ergodic(price,q,r,s,u)=Ergodic(price,2,20,5,1), то по Уильяму Блау ul=s=5.

1.3.3. Ergodic(price,q,r,s,u,ul) — эргодический осциллятор. Спецификация

  • Имя файла: Blau_Ergodic.mq5
  • Наименование: Эргодический осциллятор (основан на индексе истинной силы) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — эргодика (индекс истинной силы):
      • q — период, по которому вычисляется моментум (по умолчанию q=2);
      • r — период 1-й EMA, применительно к моментуму (по умолчанию r=20);
      • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
      • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • графическое построение #1 — сигнальная линия:
      • ul — период EMA сигнальной линии, применительно к эргодике (по умолчанию ul=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • ul>0. Если ul=1, то сигнальная линия совпадает с эргодикой;
    • минимальный размер массива цен =(q-1+r+s+u+ul-4+1).

1.4. Программный код (детальное описание)

1.4.1. «Blau_Mtm.mq5» — индикатор Mtm(price,q,r,s,u) — моментум

Программный код индикатора Mtm(price,q,r,s,u):

Рассмотрим программный код детально.

1.4.1.1. Настройки индикатора Mtm(price,q,r,s,u)

Литература

Что почитать о настройках индикатора в справочнике MQL5:

Авторское право. Описание индикатора

Настройки только через директиву препроцессора #property. Копирайт (параметры copyright и link), версия (параметр version) и описание mql5-программы (параметр description) отображаются в окне «Свойства» индикатора (вкладка «Свойства», блок «Подробности»).

Включаемый файл

Препроцессор заменяет строку #include содержимым файла «WilliamBlau.mqh». Угловые скобки обозначают, что файл «WilliamBlau.mqh» будет взят из стандартного каталога. Дополнительно см. включение файлов (#include).

О содержимом файла «WilliamBlau.mqh» см. введение.

Настройки индикатора (общие положения)

Пользовательский индикатор — это несколько графических построений. Графические построения индикатора могут быть отображены либо в основном окне ценового графика, либо в отдельном окне (подокне). Каждое графическое построение имеет некоторый способ отображения, цвет, стиль и толщину линий.

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

Чтобы настроить индикатор необходимо (см. рис. 1.6):

  1. Указать окно для отображения индикатора.
  2. Указать количество графических построений.
  3. Указать количество индикаторных буферов.
  4. Объявить индикаторные массивы.
  5. Установить связь: индикаторный массив –> индикаторный буфер –> графическое построение.
  6. Описать свойства каждого графического построения.
  7. Указать точность отображения значений индикатора.
  8. Указать для каждого графического построения количество начальных баров без отрисовки графического построения.
  9. Установить горизонтальные уровни и описать свойства каждого горизонтального уровня (отсутствует).
  10. Установить ограничения шкалы отдельного окна индикатора (отсутствует).
  11. Указать краткое имя индикатора.

Рис. 1.6. Настройки индикатора Mtm(price,q,r,s,u)

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

Отличие способов настроек индикатора состоит в том, что настройки через директиву #property доступны к изменению до того как индикатор будет прикреплен к ценовому графику; настройки с помощью специальных функций доступны после того как индикатор будет прикреплен к ценовому графику. Изменения настроек выполняются из окна «Свойства» индикатора.

Настройки: Окно для отображения индикатора (1)

Настройка обязательная и возможна только через директиву препроцессора #property. Предусмотрено два варианта отображения индикатора:

  1. В основном окне ценового графика — параметр indicator_chart_window;
  2. В отдельном окне (подокне) — параметр indicator_separate_window.
Настройки: Количество буферов (3) и графических построений (2)

Настройки обязательные и возможны только через директиву препроцессора #property. Количество индикаторных буферов (параметр indicator_buffers) и количество графических построений (параметр indicator_plots) не ограничено.

Настройки: Индикаторные массивы (4)

Индикаторные массивы объявляются на глобальном уровне как одномерные динамические массивы типа double.

Настройки: Установка связи (5) между индикаторными массивами, индикаторными буферами и графическими построениями

Код записывается в функции OnInit() обработки события Init. Связь индикаторного буфера с соответствующим ему одномерным динамическим массивом устанавливается с помощью функции SetIndexBuffer():

Индикаторный буфер — это одномерный динамические массивы типа double, размером которого управляет клиентский терминал с тем, чтобы он всегда соответствовал количеству баров, на которых индикатор рассчитывается. Индексация индикаторных буферов начинается с 0.

Индикаторный буфер может хранить три типа данных: INDICATOR_DATA, INDICATOR_COLOR_INDEX, INDICATOR_CALCULATIONS. Каждому графическому построению в зависимости от способа отображения может соответствовать от одного до пяти индикаторных буферов: от одного до четырех индикаторных буферов значений (тип данных INDICATOR_DATA) и один буфер цвета (тип данных INDICATOR_COLOR_INDEX).

Индикаторные буферы с типом данных INDICATOR_CALCULATIONS предназначены для промежуточных вычислений. После связывания индикаторный массив будет иметь индексацию как в обычных массивах (см. ниже в п. 1.4.1.2).

Настройки: Свойства графических построений (6)

Для настройки каждого графического построения указывается:

  1. Метка;
  2. Способ отображения (все 18 способов отображения см. в перечислении ENUM_DRAW_TYPE);
  3. Цвет для вывода линии;
  4. Стиль линии (возможные стили см. в перечислении ENUM_LINE_STYLE);
  5. Толщина линии.

Возможно два способа настройки:

1) Через директиву препроцессора #property (реализован этот способ):

Код записывается в функции OnInit() обработки события Init. Спецификация группы функций PlotIndexSet*():

Для уточнения отображения выбранного вида графического построения используются идентификаторы свойств графического построения, перечисленные в перечислениях ENUM_PLOT_PROPERTY.

Индексация графических построений начинается с 0. Касательно соображений о предпочтительности настроек через директиву #property см. выше в п. «Настройки индикатора (общие положения)». Некоторые свойства графических построений (цвет, стиль, толщина линий) доступны для изменения из окна «Свойства» (вкладка «Цвета») индикатора.

Настройки: Точность отображения значений индикатора (7)

Код записывается в функции OnInit() обработки события Init. Спецификация функций настройки свойств индикатора IndicatorSet*():

Идентификаторы свойств индикатора перечислены в перечислениях ENUM_CUSTOMIND_PROPERTY.

Точность отображения значений индикатора задается только с помощью функции IndicatorSetInteger(), идентификатор свойства индикатора INDICATOR_DIGITS перечисления ENUM_CUSTOMIND_PROPERTY_INTEGER.

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

Настройки: Количество начальных баров без отрисовки (8)

Данные для отрисовки q-периодного моментума Уильяма Блау формируются за четыре шага:

1-й шаг. На основании данных массива цен PriceBuffer[] рассчитывается моментум (период q). Значения q-периодного моментума помещаются в массив MtmBuffer[]. Поскольку индексация массива цен начинается с 0, значимые данные в массиве цен начинаются также с индекса 0, то значимые данные в массиве MtmBuffer[] начинаются с индекса (q–1).

2-й шаг. Значимые данные массива MtmBuffer[] сглаживаются (период сглаживания r). Значения сглаженного q-периодного моментума помещаются в массив EMA_MtmBuffer[]. Поскольку индексация массива MtmBuffer[] начинается с 0, значимые данные в массиве MtmBuffer[] начинаются с индекса (q–1), то значимые данные в массиве EMA_MtmBuffer[] начинаются с индекса (q–1)+(r–1).

3-й и 4-й шаги. Аналогичные соображения по определению того, с какого бара начинаются значимые данные в массиве DEMA_MtmBuffer[] (период сглаживания s) и в массиве MainBuffer[] (период сглаживания u). См. рис. 1.7.

Рис. 1.7. Значимые данные индикатора Mtm(price,q,r,s,u)

На глобальном уровне объявляются переменные:

Значения переменных — это индекс бара, с которого начинаются значимые данные в соответствующем переменной индикаторном массиве. Значения переменных рассчитываются в функции OnInit() обработки события Init и будут использоваться в функции OnCalculate() обработки события Calculate.

Количество начальных баров без отрисовки графического построения задается только с помощью функции PlotIndexSetInteger(), идентификатор свойства индикатора PLOT_DRAW_BEGIN перечисления ENUM_PLOT_PROPERTY_INTEGER.

Настройки: Краткое имя индикатора (11)

Код записывается в функции OnInit() обработки события Init. Краткое имя индикатора задается только с помощью функции IndicatorSetString(), идентификатор свойства индикатора INDICATOR_SHORTNAME перечисления ENUM_CUSTOMIND_PROPERTY_STRING. Функция PriceName() возвращает наименование типа цены в зависимости от значения входного параметра AppliedPrice. Код функции PriceName() расположен в файле «WilliamBlau.mqh» (см. введение).

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

Дополнительно см. input переменные. Входные параметры доступны для изменения из окна «Свойства» (вкладка «Входные параметры») индикатора.

1.4.1.2. Расчет индикатора Mtm(price,q,r,s,u)

Расчет: Алгоритм

Алгоритм расчета индикатора Mtm(price,q,r,s,u):

  1. Проверка достаточно ли данных для расчета индикатора.
  2. Расчет массива цен согласно указанному типу цены — формирование массива PriceBuffer[]
  3. Определение индекса бара, с которого начать/продолжить расчет q-периодного моментума.
  4. Расчет q-периодного моментума — формирование массива MtmBuffer[].
  5. Первое сглаживание методом EMA (период r) — формирование массива EMA_MtmBuffer[].
  6. Второе сглаживание методом EMA (период s) — формирование массива DEMA_MtmBuffer[].
  7. Третье сглаживание методом EMA (период u) — формирование массива MainBuffer[] — расчет значений для отрисовки графического построения #0.
Расчет: Функция OnCalculate()

Расчет значений индикатора выполняется в функции OnCalculate() обработки события Calculate. Воспользуемся второй формой вызова OnCalculate().

Параметр rates_total — это количество баров ценового графика, которые отрисованы и доступны индикатору для обработки. Параметр prev_calculated — это количество баров ценового графика, которые были обработаны индикатором на момент начала текущего вызова функции OnCalculate().

Функция OnCalculate() возвращает количество баров ценового графика, которые были обработаны индикатором на момент окончания текущего вызова функции OnCalculate(). Эта функция возвращает параметр rates_total и должна быть построена таким образом, чтобы на первом же вызове были обработаны все необработанные бары ценового графика.

То есть, если на первом вызове функции OnCalculate() параметр prev_calculated равен 0, то на втором вызове параметр prev_calculated равен либо rates_total, либо rates_total+1 и, начиная со второго вызова, функция OnCalculate() обрабатывает (пересчитывает) только последний бар. Дополнительное разъяснение с примером см. здесь.

Индикаторные буферы и массивы Time[], Open[], High[], Low[], Close[], TickVolume[], Volume[] и Spread[] по умолчанию имеют направление индексации слева направо, от начала массива к концу, от самый старых данных к самым свежим. Индекс первого элемента равен 0. Размером индикаторных буферов управляет клиентский терминал с тем, чтобы он всегда соответствовал количеству баров, на которых индикатор рассчитывается.

Расчет: Проверка достаточно ли данных для расчета индикатора (1)

Глобальная переменная rates_total_min — это минимальный размер входных таймсерий индикатора; рассчитывается в функции OnInit() обработки события Init.

Расчет: Массив цен PriceBuffer[] (2)

Для формирования массива цен PriceBuffer[] используется функция CalculatePriceBuffer(). Код функции CalculatePriceBuffer() расположен в файле «WilliamBlau.mqh» (см. введение). Тип цены указывается во входном параметре AppliedPrice.

Расчет: Определение индекса бара, с которого начать/продолжить расчет q-периодного моментума (3)

Локальная переменная pos — это индекс бара, с которого будет рассчитываться индикатор на текущем вызове функции OnCalculate(). Совместим расчет значения переменной pos с этапом подготовки массива MtmBuffer[] к расчету (этап обнуления незначимых элементов массива MtmBuffer[]).

Расчет: q-периодный моментум (4)

q-периодный моментум рассчитывается как разница между ценой текущего периода PriceBuffer[i] и ценой (q–1) периодов назад PriceBuffer[i–(q–1)].

Расчет: сглаживание методом EMA (5–7)

О функции ExponentialMAOnBuffer() см. также введение. На примере расчета r-периодной 1-й EMA: функция ExponentialMAOnBuffer() заполняет выходной массив EMA_MtmBuffer[] значениями EMA (период r) от входного массива MtmBuffer[]; незначимые данные до индекса (begin1–1) включительно заполняются нулевыми значениями.

1.4.2. «Blau_TSI.mq5» — индикатор TSI(price,q,r,s,u) — индекс истинной силы

Программный код индикатора TSI(price,q,r,s,u) (построен на основе изменений и добавлений в программный код «Blau_Mtm.mq5»):

Рассмотрим детально только изменения и добавления в программный код «Blau_Mtm.mq5».

1.4.2.1. Настройки индикатора TSI(price,q,r,s,u) (изменения и добавления в программный код «Blau_Mtm.mq5»)

Настройки индикатора (общие положения)

Настройки индикатора TSI(price,q,r,s,u) отличаются от настроек индикатора Mtm(price,q,r,s,u) (см. рис. 1.8):

  1. Указать окно для отображения индикатора (не изменилось).
  2. Указать количество графических построений (не изменилось).
  3. Указать количество индикаторных буферов (количество буферов увеличилось).
  4. Объявить индикаторные массивы (добавлены массивы).
  5. Установить связь: индикаторный массив –> индикаторный буфер –> графическое построение (реструктуризация).
  6. Описать свойства каждого графического построения (изменена метка).
  7. Указать точность отображения значений индикатора (изменена точность).
  8. Указать для каждого графического построения количество начальных баров без отрисовки графического построения (не изменилось).
  9. Установить горизонтальные уровни и описать свойства каждого горизонтального уровня (новое).
  10. Установить ограничения шкалы отдельного окна индикатора (новое).
  11. Указать краткое имя индикатора (изменено имя).

Рис. 1.8. Настройки индикатора TSI(price,q,r,s,u)

Настройки (изменения)

В программный код «Blau_Mtm.mq5» внесены следующие незначительные изменения.

1. Изменено краткое описание mql5-программы:

2. (к настройке 6) Количество графических построений не увеличилось; способ отображения (DRAW_LINE – линия), цвет для вывода линии (Blue), стиль линии (STYLE_SOLID – сплошная линия) и толщина линии (1) остались прежними; изменилась метка для графического построения #0:

3. (к настройке 7) Изменена точность отображения значений индикатора:

4. (к настройке 11) Изменено краткое имя индикатора:

Настройки: Горизонтальные уровни (9)

Для настройки горизонтальных уровней для каждого уровня необходимо указать:

  1. Значение на вертикальной оси;
  2. Описание уровня (необязательно). Горизонтальные уровни имеют единый стиль отрисовки:
    1. Цвет для вывода линии;
    2. Стиль линии (возможные стили см. в перечислении ENUM_LINE_STYLE);
    3. Толщина линии.

Возможно два способа настройки:

1) Через директиву препроцессора #property (реализован этот способ).

2) С помощью группы функций настройки свойств индикатора IndicatorSet*():

Код записывается в функции OnInit() обработки события Init. Индексация горизонтальных уровней начинается с 0. Для уточнения отображения горизонтального уровня используются идентификаторы свойств индикатора INDICATOR_LEVEL*, перечисленные в перечислениях ENUM_CUSTOMIND_PROPERTY.

Описание каждого уровня задается только с помощью функции IndicatorSetString(), идентификатор свойства индикатора INDICATOR_LEVELTEXT перечисления ENUM_CUSTOMIND_PROPERTY_STRING. Описание уровня размещается непосредственно над уровнем слева.

Из окна «Свойства» (вкладка «Уровни») индикатора можно добавить/удалить горизонтальные уровни, изменить значение, описание каждого уровня и стиль отрисовки уровней.

Настройки: Ограничения шкалы отдельного окна индикатора (10)

Возможно два способа настройки:

1) Через директиву препроцессора #property (реализован этот способ).

2) С помощью функции IndicatorSetDouble(), идентификаторы свойства индикатора INDICATOR_MINIMUM и INDICATOR_MAXIMUM перечисления ENUM_CUSTOMIND_PROPERTY_DOUBLE.

Код записывается в функции OnInit() обработки события Init. Нижнее и верхнее ограничения шкалы отдельного окна индикатора доступны для изменения из окна «Свойства» (вкладка «Шкала») индикатора.

Настройки (изменения): Индикаторные буферы (3–5)

Изменения в настройке «индикаторный массив –> индикаторный буфер –> графическое построение»:

1. (к настройке 3) Увеличилось количество буферов:

2. (к настройке 4) Добавлены индикаторные массивы, которые необходимы для расчета абсолютного значения q-периодного моментума:

изменено назначение массива MainBuffer[]:

3. (к настройке 5) Выполнена реструктуризация связи «индикаторный массив –> индикаторный буфер –> графическое построение»:

1.4.2.2. Расчет индикатора TSI(price,q,r,s,u) (изменения и добавления в программный код «Blau_Mtm.mq5»)

Расчет: Алгоритм

Алгоритм расчета индикатора TSI(price,q,r,s,u):

  1. Проверка достаточно ли данных для расчета индикатора.
  2. Расчет массива цен согласно указанному типу цены — формирование массива PriceBuffer[].
  3. Определение индекса бара, с которого начать/продолжить расчет q-периодного моментума.
  4. Расчет q-периодного моментума и его абсолютного значения — формирование массивов MtmBuffer[] и AbsMtmBuffer[].
  5. Первое сглаживание методом EMA (период r) — формирование массивов EMA_MtmBuffer[] и EMA_AbsMtmBuffer[].
  6. Второе сглаживание методом EMA (период s) — формирование массивов DEMA_MtmBuffer[] и DEMA_AbsMtmBuffer[].
  7. Третье сглаживание методом EMA (период u) — формирование массивов TEMA_MtmBuffer[] и TEMA_AbsMtmBuffer[].
  8. Определение индекса бара, с которого начать/продолжить расчет индекса истинной силы.
  9. Расчет индекса истинной силы — формирование массива MainBuffer[] — расчет значений для отрисовки графического построения #0.

Суть изменений в алгоритме (кратко): а) (см. п. 4–7) параллельно с расчетом q-периодного моментума (группа массивов *MtmtBuffer[]) идет расчет абсолютного значения q-периодного моментума (группа массивов *AbsMtmBuffer[]); б) (см. п. 8–9) добавлен расчет TSI.

Расчет: q-периодный моментум и его абсолютное значение (3–7)
Расчет: индекс истинной силы (8–9)

1.4.3. «Blau_Ergodic.mq5» — индикатор Ergodic(price,q,r,s,u,ul) — эргодический осциллятор

Программный код индикатора Ergodic(price,q,r,s,u,ul) (построен на основе изменений и добавлений в программный код «Blau_TSI.mq5»):

Рассмотрим детально только изменения и добавления в программный код «Blau_TSI.mq5».

1.4.3.1. Настройки индикатора Ergodic(price,q,r,s,u,ul) (изменения и добавления в программный код «Blau_TSI.mq5»)

Настройки индикатора (общие положения)

Настройки индикатора Ergodic(price,q,r,s,u,ul) отличаются от настроек индикатора TSI(price,q,r,s,u) (см. рис. 1.9):

  1. Указать окно для отображения индикатора (не изменилось).
  2. Указать количество графических построений (добавлено графическое построение).
  3. Указать количество индикаторных буферов (количество буферов увеличилось).
  4. Объявить индикаторные массивы (добавлен массив).
  5. Установить связь: индикаторный массив –> индикаторный буфер –> графическое построение (реструктуризация).
  6. Описать свойства каждого графического построения (изменены свойства; добавлено графическое построение).
  7. Указать точность отображения значений индикатора (не изменилось).
  8. Указать для каждого графического построения количество начальных баров без отрисовки графического построения (добавлено графическое построение).
  9. Установить горизонтальные уровни и описать свойства каждого горизонтального уровня (не изменилось).
  10. Установить ограничения шкалы отдельного окна индикатора (не изменилось).
  11. Указать краткое имя индикатора (изменено имя).

Рис. 1.9. Настройки индикатора Ergodic(price,q,r,s,u,ul)

Настройки (изменения)

В программный код «Blau_TSI.mq5» внесены следующие изменения.

1. Изменено краткое описание mql5-программы:

2. Добавлен входной параметр:

3. (к настройке 11) Изменено краткое имя индикатора:

Настройки (изменения): Графические построения (2, 6)

1. (к настройке 2) Добавлено еще одно графическое построение (сигнальная линия):

2. (к настройке 6) а) Изменены свойства первого графического построения #0 «Ergodic».

Ранее в качестве способа отображения использовалась линия (идентификатор DRAW_LINE), теперь в качестве способа отображения выбрана гистограмма от нулевой линии (идентификатор DRAW_HISTOGRAM перечисления ENUM_DRAW_TYPE).

Изменены цвет для вывода линий и толщина линий:

б) Добавлено графическое построение #1 «Signal» (сигнальная линия):

Настройки (изменения): Индикаторные буферы (3–5)

Изменения в настройке «индикаторный массив –> индикаторный буфер –> графическое построение»:

1. (к настройке 3) Увеличилось количество буферов:

2. (к настройке 4) Добавлен индикаторный массив, который необходим для расчета и отрисовки значений сигнальной линии:

3. (к настройке 5) Выполнена реструктуризация связи «индикаторный массив –> индикаторный буфер –> графическое построение»:

Настройки: Количество начальных баров без отрисовки (8)
  • Количество начальных баров без отрисовки графического построения #0 «Ergodic» не изменилось. Методика расчета изложена в п. 1.4.1.1.
  • Методика расчета количества начальных баров без отрисовки графического построения #1 «Signal» аналогичная. Массив SignalBuffer[] — это результат сглаживания значимых данных массива MainBuffer[] (период сглаживания ul).

Поскольку индексация массива MainBuffer[] начинается с 0, значимые данные в массиве MainBuffer[] начинаются с индекса (q–1)+(r–1)+(s–1)+(u–1), то значимые данные в массиве SignalBuffer[] начинаются с индекса (q–1)+(r–1)+(s–1)+(u–1)+(ul–1).

Объявлена глобальная переменная begin5:

Расчет (полный, дополнительно см. в п. 1.4.1.1):

1.4.3.2. Расчет индикатора Ergodic(price,q,r,s,u,ul) (изменения и добавления в программный код «Blau_TSI.mq5»)

Расчет: Алгоритм

Алгоритм расчета индикатора Ergodic(price,q,r,s,ul):

  1. Проверка достаточно ли данных для расчета индикатора.
  2. Расчет массива цен согласно указанному типу цены — формирование массива PriceBuffer[].
  3. Определение индекса бара, с которого начать/продолжить расчет q-периодного моментума.
  4. Расчет q-периодного моментума и его абсолютного значения — формирование массивов MtmBuffer[] и AbsMtmBuffer[].
  5. Первое сглаживание методом EMA (период r) — формирование массивов EMA_MtmBuffer[] и EMA_AbsMtmBuffer[].
  6. Второе сглаживание методом EMA (период s) — формирование массивов DEMA_MtmBuffer[] и DEMA_AbsMtmBuffer[].
  7. Третье сглаживание методом EMA (период u) — формирование массивов TEMA_MtmBuffer[] и TEMA_AbsMtmBuffer[].
  8. Определение индекса бара, с которого начать/продолжить расчет индекса истинной силы.
  9. Расчет эргодики (индекса истинной силы) — формирование массива MainBuffer[] — расчет значений для отрисовки графического построения #0.
  10. Расчет сигнальной линии — сглаживание эргодики методом EMA (период ul) — формирование массива SignalBuffer[] — расчет значений для отрисовки графического построения #1.

Суть изменений в алгоритме (кратко): а) (см. п. 1) изменилось требование к минимальному размеру входных таймсерий индикатора; б) (см. п. 10) добавлен расчет сигнальной линии.

Расчет (изменения): Проверка достаточно ли данных для расчета индикатора (1)

В алгоритме изменений нет:

Изменилось значение глобальной переменной rates_total_min (минимальный размер входных таймсерий индикатора; рассчитывается в функции OnInit() обработки события Init):

Расчет: сигнальная линия (10)

2. Стохастический моментум

Рассматриваемые индикаторы (см. вложение) разделены на две группы.

I. Индикаторы, основанные на стохастике:

  1. Blau_TStoch.mq5 — стохастик (q-периодный стохастик; сглаженный q-периодный стохастик);
  2. Blau_TStochI.mq5 — индекс стохастика (нормированный сглаженный q-периодный стохастик);
  3. Blau_TS_Stochastic.mq5 — стохастический TS-осциллятор (основан на индексе стохастика).

II. Индикаторы, основанные на стохастическом моментуме:

  1. Blau_SM.mq5 — индикатор стохастического темпа (q-периодный стохастический моментум; сглаженный q-периодный стохастический моментум);
  2. Blau_SMI.mq5 — индекс стохастического темпа (нормированный сглаженный q-периодный стохастический моментум);
  3. Blau_SM_Stochastic.mq5 — стохастический SM-осциллятор (основан на индексе стохастического темпа).

2.1. Индикаторы, основанные на стохастике

В «Руководстве пользователю к клиентскому терминалу MetaTrader» в разделе «Аналитика/Технические индикаторы/Осцилляторы/Stochastic Oscillator» представлено описание встроенного в клиентский терминал MetaTrader 5 технического индикатора стохастический осциллятор (Stochastic Oscillator) и способов его использования в техническом анализе (см. также iStochastic).

2.1.1. Стохастический осциллятор Джорджа Лэйна

Стохастик, стохастический осциллятор (Stochastic, Stochastic Oscillator) — это индикатор, который показывает положение цены относительно диапазона колебания цены за предыдущие q периодов. Создатель и популяризатор стохастика Джордж Лэйн (George Lane).

  • быстрый стохастик, называемый иногда %K;
  • медленный стохастик (сигнальная линия), называемый иногда %D.

Формула стохастического осциллятора Джорджа Лэйна:

  • %K — быстрый стохастик;
  • %D — медленный стохастик (сигнальная линия);
  • price — цена [закрытия] текущего периода;
  • q — число временных периодов ценового графика, участвующих в расчете стохастика;
  • HH(q) — максимальное для предыдущих q периодов значение самой высокой цены за период q;
  • LL(q) — минимальное для предыдущих q периодов значение самой низкой цены за период q;
  • SMA(%K,ul) — простая скользящая средняя порядка ul, примененная к быстрому стохастику (%K).

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

2.1.2. Стохастический осциллятор Уильяма Блау

Рис. 2.1. Индикаторы Уильяма Блау, основанные на стохастике

2.1.2.1. Стохастик

Стохастик — это расстояние от цены [закрытия] текущего периода до низшей точкой диапазона колебания цены за предыдущие q периодов. Величина q-периодного стохастика показывает, насколько сильно цена смещена относительно низшей точки q-периодного диапазона колебания цены. Значения q-периодного стохастика положительны, либо равны нулю.

Рис. 2.2. Определение стохастика

Формула q-периодного стохастика:

  • price — цена [закрытия] текущего периода;
  • q — число временных периодов ценового графика, участвующих в расчете стохастика;
  • LL(q) — минимальное для предыдущих q периодов значение самой низкой цены за период q.

Формула сглаженного q-периодного стохастика:

  • price — цена [закрытия] — ценовая база ценового графика;
  • q — число временных периодов ценового графика, участвующих в расчете стохастика;
  • stoch(price,q)=price-LL(q) — q-периодный стохастик;
  • EMA(stoch(price,q),r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к q-периодному стохастику;
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

TStoch(price,q,r,s,u) — стохастик. Спецификация

  • Имя файла: Blau_TStoch.mq5
  • Наименование: Индикатор стохастика (q-периодный стохастик; сглаженный q-периодный стохастик) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется стохастик (по умолчанию q=5);
    • r — период 1-й EMA, применительно к стохастику (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

2.1.2.2. Индекс стохастика

Индекс стохастика — это нормированный сглаженный q-периодный стохастик.

Величины сглаженного q-периодного стохастика приведены к процентному формату (интервал отображения [0,+100]). Каждая величина сглаженного q-периодного стохастика нормируется на величину q-периодного диапазона колебания цены. Нормировка позволяет интерпретировать значение нормированного сглаженного q-периодного стохастика как степень перекупленности/перепроданности рынка.

Формула индекса стохастика:

  • price — цена [закрытия] — ценовая база ценового графика;
  • q — число временных периодов ценового графика, участвующих в расчете стохастика;
  • LL(q) — минимальное для предыдущих q периодов значение самой низкой цены за период q;
  • HH(q) — максимальное для предыдущих q периодов значение самой высокой цены за период q;
  • stoch(q)=price-LL(q) — q-периодный стохастик;
  • TStoch(price,q,r,s,u) — трижды сглаженный q-периодный стохастик;
  • HH(q)-LL(q) — q-периодный диапазон колебания цены;
  • EMA(. r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к показателю [соответственно: 1) к q-периодному стохастику и 2) к q-периодному диапазону колебания цены];
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

TStochI(price,q,r,s,u) — индекс стохастика. Спецификация

  • Имя файла: Blau_TStochI.mq5
  • Наименование: Индекс стохастика (нормированный сглаженный q-периодный стохастик) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется стохастик (по умолчанию q=5);
    • r — период 1-й EMA, применительно к стохастику (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • (не обязательно) два уровня (по умолчанию +40 и +60) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию 0) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

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

Определение стохастического осциллятора:

  • TS_Stochastic() — быстрый стохастик, %k — индекс стохастика TStochI(price,q,r,s,u);
  • SignalLine() — медленный стохастик (сигнальная линия), %d — экспоненциальная скользящая средняя периода ul, примененная к быстрому стохастику (%k);
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA быстрого стохастика.

TS_Stochastic(price,q,r,s,u,ul) — стохастический осциллятор. Спецификация

  • Имя файла: Blau_TS_Stochastic.mq5
  • Наименование: Стохастический осциллятор (основан на индексе стохастика) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — быстрый стохастик (индекс стохастика), %k:
      • q — период, по которому вычисляется стохастик (по умолчанию q=5);
      • r — период 1-й EMA, применительно к стохастику (по умолчанию r=20);
      • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
      • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • графическое построение #1 — медленный стохастик (сигнальная линия), %d:
      • ul — период EMA сигнальной линии, применительно к быстрому стохастику (по умолчанию ul=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • два уровня (по умолчанию +40 и +60) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию 0) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • ul>0. Если ul=1, то медленный стохастик (сигнальная линия) совпадает с быстрым стохастиком;
    • минимальный размер массива цен =(q-1+r+s+u+ul-4+1).

2.1.2.4. Преемственность

Стохастический осциллятор Уильяма Блау включает в себя стохастический осциллятор Джорджа Лэйна. Чтобы TS_Stochastic (Уильям Блау) соответствовал стохастическому осциллятору (Джордж Лэйн), который реализован в MetaTrader 5, необходимо задать:

Рис. 2.3. Стохастический осциллятор Уильяма Блау включает в себя стохастический осциллятор Джорджа Лэйна

2.1.2.5. Программный код стохастического осциллятора

На примере индикатора TS_Stochastic(price,q,r,s,u,ul):

1) Связь между индикаторными массивами, индикаторными буферами и графическими построениями:

2) Алгоритм расчета q-периодного стохастика и q-периодного диапазона колебания цены:

2.2. Индикаторы, основанные на стохастическом моментуме

Рис. 2.4. Индикаторы Уильяма Блау, основанные на стохастическом моментуме

2.2.1. Стохастический моментум

Стохастический моментум (Stochastic Momentum, SM) — это расстояние от цены [закрытия] текущего периода до середины диапазона колебания цены за предыдущие q периодов. Величина q-периодного стохастического моментума показывает, насколько сильно цена смещена относительно середины q-периодного диапазона колебания цены.

Знак q-периодного стохастического моментума показывает положение цены относительно середины q-периодного диапазона колебания цены: положительный стохастический моментум — цена выше средней точки, отрицательный — цена ниже средней точки.

Рис. 2.5. Определение стохастического моментума

Формула q-периодного стохастического моментума:

  • price — цена [закрытия] текущего периода;
  • q — число временных периодов ценового графика, участвующих в расчете стохастического моментума;
  • LL(q) — минимальное для предыдущих q периодов значение самой низкой цены за период q;
  • HH(q) — максимальное для предыдущих q периодов значение самой высокой цены за период q;
  • 1/2*[LL(q)+HH(q)] — середина q-периодного диапазона колебания цены.

Формула сглаженного q-периодного стохастического моментума:

  • price — цена [закрытия] — ценовая база ценового графика;
  • q — число временных периодов ценового графика, участвующих в расчете стохастического моментума;
  • sm(price,q)=price-1/2*[LL(q)+HH(q)] — q-периодный стохастический моментум;
  • EMA(sm(price,q),r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к q-периодному стохастическому моментуму;
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(sm(q),r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

2.2.1.2. SM(price,q,r,s,u) — индикатор стохастического темпа (стохастический моментум). Спецификация

  • Имя файла: Blau_SM.mq5
  • Наименование: Индикатор стохастического темпа (q-периодный стохастический моментум; сглаженный q-периодный стохастический моментум) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется стохастический моментум (по умолчанию q=5);
    • r — период 1-й EMA, применительно к стохастическому моментуму (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

2.2.2. Индекс стохастического темпа

Индекс стохастического темпа (Stochastic Momentum Index, SMI) — это индикатор нормированного стохастического темпа (нормированный сглаженный q-периодный стохастический моментум). Величины сглаженного q-периодного стохастического моментума приведены к процентному формату (интервал отображения [–100,+100]).

Каждая величина сглаженного q-периодного стохастического моментума нормируется на величину половины q-периодного диапазона колебания цены. Нормировка позволяет интерпретировать значение SMI как степень перекупленности (положительное значение) или перепроданности (отрицательное значение) рынка.

Формула индекса стохастического темпа:

  • price — цена [закрытия] — ценовая база ценового графика;
  • LL(q) — минимальное для предыдущих q периодов значение самой низкой цены за период q;
  • HH(q) — максимальное для предыдущих q периодов значение самой высокой цены за период q;
  • sm(price,q)=price-1/2*[LL(q)+HH(q)] — q-периодный стохастический моментум;
  • SM(price,q,r,s,u) — трижды сглаженный q-периодный стохастический моментум;
  • HH(q)-LL(q) — q-периодный диапазон колебания цены;
  • 1/2*[LL(q)+HH(q)] — середина q-периодного диапазона колебания цены;
  • 1/2*[HH(q)-LL(q)] — половина q-периодного диапазона колебания цены;
  • EMA(. r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к показателю [соответственно: 1) к q-периодному стохастическому моментуму и 2) к половине q-периодного диапазона колебания цены];
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

2.2.2.2. SMI(price,q,r,s,u) — индекс стохастического темпа. Спецификация

  • Имя файла: Blau_SMI.mq5
  • Наименование: Индекс стохастического темпа (нормированный сглаженный q-периодный стохастический моментум) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется стохастический моментум (по умолчанию q=5);
    • r — период 1-й EMA, применительно к стохастическому моментуму (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • (не обязательно) два уровня (по умолчанию –40 и +40) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

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

Определение стохастического осциллятора:

  • SM_Stochastic() — индекс стохастического темпа SMI(price,q,r,s,u);
  • SignalLine() — сигнальная линия — экспоненциальная скользящая средняя периода ul, примененная к индексу стохастического темпа;
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA индекса стохастического темпа.

2.2.3.1. SM_Stochastic(price,q,r,s,u,ul) — стохастический осциллятор. Спецификация

  • Имя файла: Blau_SM_Stochastic.mq5
  • Наименование: Стохастический осциллятор (основан на стохастическом моментуме) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — индекс стохастического темпа:
      • q — период, по которому вычисляется стохастический моментум (по умолчанию q=5);
      • r — период 1-й EMA, применительно к стохастическому моментуму (по умолчанию r=20);
      • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
      • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • графическое построение #1 — сигнальная линия:
      • ul — период EMA сигнальной линии, применительно к индексу стохастического темпа (по умолчанию ul=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • два уровня (по умолчанию –40 и +40) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • ul>0. Если ul=1, то сигнальная линия совпадает с индексом стохастического темпа;
    • минимальный размер массива цен =(q-1+r+s+u+ul-4+1).

2.2.4. Программный код стохастического осциллятора

На примере индикатора SM_Stochastic(price,q,r,s,u,ul):

1) Связь между индикаторными массивами, индикаторными буферами и графическими построениями:

2) Алгоритм расчета q-периодного стохастического моментума и половины q-периодного диапазона колебания цены:

3. Индикатор отклонения от тенденции

Рассматриваемые индикаторы (см. вложение) разделены на две группы.

I. Индикаторы, основанные на отклонении от тенденции развития рынка.

  1. Blau_MDI.mq5 — индикатор среднего отклонения от тенденции (среднее отклонение; сглаженное среднее отклонение);
  2. Blau_Ergodic_MDI.mq5 — эргодический MDI-осциллятор (основан на индикаторе среднего отклонения).

II. Индикаторы, основанные на схождении/расхождении скользящих средних.

  1. Blau_MACD.mq5 — индикатор схождения/расхождения скользящих средних (MACD; сглаженный MACD);
  2. Blau_Ergodic_MACD.mq5 — эргодический MACD-осциллятор (основан на индикаторе схождения/расхождения скользящих средних).

Рис. 3.1. Индикаторы Уильяма Блау, основанные на отклонении от тенденции развития рынка

3.1.1. Индикатор среднего отклонения от тенденции

Среднее отклонение от тенденции (метод «исключения тенденции») — это расстояние цены [закрытия] до экспоненциальной скользящей средней (экспоненты) периода r, примененной к цене [закрытия].

Тенденция развития рынка: экспонента периода r, примененная к цене, используется для определения тенденции роста (экспонента растет) или снижения (экспонента снижается) цены.

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

Знак среднего отклонения от тенденции показывает положение цены относительно r-периодной экспоненты, примененной к цене: положительное отклонение от тенденции — цена выше экспоненты; отрицательное — цена ниже экспоненты.

Формула среднего отклонения от тенденции:

  • price — цена [закрытия] текущего периода;
  • EMA(price,r) — тенденция развития рынка — экспоненциальная скользящая средняя периода r, примененная к цене.

Показатель «Среднее отклонение от тенденции» присутствует под названием «Ошибка отклонения цены от значения EMA» в ряде технических индикаторов, встроенных в клиентский терминал MetaTrader 5. См. в «Руководстве пользователю к клиентскому терминалу MetaTrader» в разделе «Аналитика/Технические индикаторы/Трендовые индикаторы»:

Подобный показатель использует Александр Элдер в своих индикаторах Bears Power и Bulls Power. См. в «Руководстве пользователю к клиентскому терминалу MetaTrader» в разделе «Аналитика/Технические индикаторы/Осцилляторы»:

Индикатор среднего отклонения от тенденции (Mean Deviation Index, MDI) — это сглаженное среднее отклонение от тенденции развития рынка.

Формула индикатора среднего отклонения от тенденции:

  • price — цена [закрытия] — ценовая база ценового графика;
  • EMA(price,r) — тенденция развития рынка — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к цене;
  • md(price,r)=price-EMA(price,r) — среднее отклонение от тенденции — отклонение цены от экспоненты периода r, примененной к цене;
  • EMA(md(price,r),s) — второе сглаживание — экспонента периода s, примененная к среднему отклонению от тенденции;
  • EMA(EMA(md(price,r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

3.1.1.3. MDI(price,r,s,u) — индикатор среднего отклонения. Спецификация

  • Имя файла: Blau_MDI.mq5
  • Наименование: Индикатор среднего отклонения от тенденции развития рынка (среднее отклонение; сглаженное среднее отклонение) по Уильяму Блау.
  • Входные параметры:
    • r — период 1-й EMA, применительно к цене (по умолчанию r=20);
    • s — период 2-й EMA, применительно к среднему отклонению (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»).
  • Ограничения:
    • r>1;
    • s>0, u>0. Если s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(r+s+u-3+1).

3.1.2. Эргодический MDI-осциллятор

Определение эргодического MDI-осциллятора:

  • Ergodic_MDI() — эргодика — индикатор среднего отклонения от тенденции MDI(price,r,s,u);
  • SignalLine() — сигнальная линия — экспоненциальная скользящая средняя периода ul, примененная к эргодике;
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA эргодики.

3.1.2.2. Ergodic_MDI(price,r,s,u,ul) — эргодический MDI-осциллятор. Спецификация

  • Имя файла: Blau_Ergodic_MDI.mq5
  • Наименование: Эргодический MDI-осциллятор (основан на индикаторе среднего отклонения) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — эргодика (индикатор среднего отклонения от тенденции):
      • r — период 1-й EMA, применительно к цене (по умолчанию r=20);
      • s — период 2-й EMA, применительно к среднему отклонению (по умолчанию s=5);
      • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • графическое построение #1 — сигнальная линия:
      • ul — период EMA сигнальной линии, применительно к эргодике (по умолчанию ul=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»).
  • Ограничения:
    • r>1;
    • s>0, u>0. Если s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • ul>0. Если ul=1, то сигнальная линия совпадает с эргодикой;
    • минимальный размер массива цен =(r+s+u+ul-4+1).

3.1.3. Программный код эргодического осциллятора

На примере индикатора Ergodic_MDI(price,r,s,u,ul):

1) Связь между индикаторными массивами, индикаторными буферами и графическими построениями:

2) Алгоритм расчета среднего отклонения:

Рис. 3.2. Индикаторы Уильяма Блау, основанные на схождении/расхождении скользящих средних

3.2.1. Индикатор схождения/расхождения скользящих средних

Схождение/расхождение скользящих средних (Moving Average Convergence/Divergence, MACD) — это разность (расхождение) между двумя экспоненциальными скользящими средними (экспонентами): быстрой экспоненты периода s и медленной экспоненты периода r; экспоненты применены к цене [закрытия].

Знак MACD показывает положение быстрой s-периодной экспоненты относительно медленной r-периодной экспоненты: положительный MACD — EMA(s) выше EMA(r), отрицательный MACD — EMA(s) ниже EMA(r). Изменение MACD по абсолютному значению: рост |MACD| указывает на расхождение скользящих средних; снижение |MACD| указывает на схождение скользящих средних.

Формула схождения/расхождения скользящих средних:

  • price — цена [закрытия] текущего периода;
  • EMA(price,r) — медленная экспоненциальная скользящая средняя (экспонента) периода r, примененная к цене;
  • EMA(price,s) — быстрая экспонента периода s, примененная к цене.

Индикатор схождения/расхождения скользящих средних показывает соотношение между быстрой и медленной экспоненциальными скользящими средними (сглаженное схождение/расхождение скользящих средних).

Формула индикатора схождения/расхождения скользящих средних:

  • price — цена [закрытия] — ценовая база ценового графика;
  • EMA(price,r) — первое сглаживание — медленная экспоненциальная скользящая средняя (экспонента) периода r, примененная к цене;
  • EMA(price,s) — второе сглаживание — быстрая экспонента периода s, примененная к цене;
  • macd(r,s)=EMA(price,s)-EMA(price,r) — схождение/расхождение быстрой (период s) и медленной (период s) эспонент, примененных к цене;
  • EMA(macd(r,s),u) — третье сглаживание — экспонента периода u, примененная к схождению/расхождению скользящих средних: быстрой EMA(price,s) и медленной EMA(price,r).

3.2.1.1. MACD(price,r,s,u) — индикатор схождения/расхождения скользящих средних. Спецификация

  • Имя файла: Blau_MACD.mq5
  • Наименование: Индикатор схождения/расхождения скользящих средних (MACD; сглаженный MACD) по Уильяму Блау.
  • Входные параметры:
    • r — период 1-й медленной EMA, применительно к цене (по умолчанию r=20);
    • s — период 2-й быстрой EMA, применительно к цене (по умолчанию s=5)
    • u — период 3-й EMA, применительно к схождению/расхождению скользящих средних (по умолчанию u=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»).
  • Ограничения:
    • r>1, s>1;
    • s 0. Если u=1, то сглаживание не выполняется;
    • минимальный размер массива цен =([max(r,s)]+u-2+1).

3.2.2. Эргодический MACD-осциллятор

Определение эргодического MACD-осциллятора:

  • Ergodic_MACD() — эргодика — индикатор схождения/расхождения скользящих средних MACD(price,r,s,u);
  • SignalLine() — сигнальная линия — экспоненциальная скользящая средняя периода ul, примененная к эргодике;
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA эргодики.

В «Руководстве пользователю к клиентскому терминалу MetaTrader» в разделе «Аналитика/Технические индикаторы/Осцилляторы/MACD» представлено описание встроенного в клиентский терминал MetaTrader 5 технического индикатора Cхождение/расхождение скользящих средних (MACD) и способов его использования в техническом анализе (см. также iMACD).

В отличие от «терминального» MACD, для получения сигнальной линии в качестве метода сглаживания Уильям Блау использует экспоненциальное скользящее среднее (в «терминальном» MACD используется простое скользящее среднее).

3.2.2.1. Ergodic_MACD(price,r,s,u,ul) — эргодический MACD-осциллятор. Спецификация

  • Имя файла: Blau_Ergodic_MACD.mq5
  • Наименование: Эргодический MACD-осциллятор (основан на индикаторе схождения/расхождения скользящих средних) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — эргодика (схождения/расхождения скользящих средних):
      • r — период 1-й медленной EMA, применительно к цене (по умолчанию r=20);
      • s — период 2-й быстрой EMA, применительно к цене (по умолчанию s=5)
      • u — период 3-й EMA, применительно к схождению/расхождению скользящих средних (по умолчанию u=3);
    • графическое построение #1 — сигнальная линия:
      • ul — период EMA сигнальной линии, применительно к эргодике (по умолчанию ul=3);
    • AppliedPrice — тип цены (по умолчанию AppliedPrice= PRICE_CLOSE ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»).
  • Ограничения:
    • r>1, s>1;
    • s 0. Если u=1, то сглаживание не выполняется;
    • ul>0. Если ul=1, то сигнальная линия совпадает с эргодикой;
    • минимальный размер массива цен =([max(r,s)]+u+ul-3+1).

3.2.3. Программный код эргодического MACD-осциллятора

На примере индикатора Ergodic_MACD(price,r,s,u,ul):

1) Связь между индикаторными массивами, индикаторными буферами и графическими построениями:

2) Алгоритм расчета схождения/расхождения скользящих средних:

При расчете эргодических MDI-осциллятора и MACD-осциллятора Уильям Блау не использует нормировку (для справки см. пп. 1.2.1, 1.3.1). Поэтому эргодические MDI-осциллятор и MACD-осциллятор не могут быть использованы для интерпретации степени перекупленности или перепроданности рынка.

Так, рекомендации по использованию сигналов индикатора MACD из «Руководства пользователю к клиентскому терминалу MetaTrader» в разделе «Аналитика/Технические индикаторы/Осцилляторы/MACD»:

«Moving Average Convergence/Divergence также весьма ценен как индикатор перекупленности/перепроданности. Когда короткое скользящее среднее поднимается существенно выше длинного (т.е. MACD растет), это означает, что цена рассматриваемого инструмента, скорее всего, слишком завышена и скоро вернется к более реалистичному уровню.»

в этом случае некорректны с точки зрения технического анализа.

4. Моментум для свеч

Рассматриваемые индикаторы (см. вложение) разделены на две группы.

  1. Blau_CMtm.mq5 — индикатор моментума свечи (моментум q-периодной свечи; сглаженный моментум q-периодной свечи);
  2. Индексы (нормированный сглаженный моментум q-периодной свечи):
    • Blau_CMI.mq5 — индекс моментума свечи (нормирование по абсолютному значению моментума q-периодной свечи);
    • Blau_CSI.mq5 — индекс свечи (нормирование по длине q-периодной свечи);
  3. Эргодические осцилляторы свечи:
    • Blau_Ergodic_CMI.mq5 — эргодический CMI-осциллятор (основан на индексе моментума свечи);
    • Blau_Ergodic_CSI.mq5 — эргодический CSI-осциллятор (основан на индексе свечи).

Рис. 4.1. Индикаторы Уильяма Блау, основанные на моментуме свечи (нормирование по абсолютному значению моментума q-периодной свечи)

Рис. 4.2. Индикаторы Уильяма Блау, основанные на моментуме свечи (нормирование по длине q-периодной свечи)

4.1. Моментум свечи

4.1.1. Определение моментума свечи

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

Моментум свечи (по Уильяму Блау) — это разность между ценой закрытия и ценой открытия в пределах одного периода (в пределах одной свечи). Знак моментума свечи показывает направление изменения цены: положительный моментум свечи — цена выросла за период, отрицательный — цена снизилась за период.

Формула моментума свечи:

  • close — цена закрытия [текущего] периода (свечи);
  • open — цена открытия [текущего] периода (свечи).

С позиции универсальности расширим определение моментума свечи:

  1. Моментум свечи может отражать изменение цены на любом временном периоде ценового графика;
  2. Ценовая база (цена закрытия, цена открытия) может быть произвольной.

Рис. 4.3. Определение моментума q-периодной свечи

Формула моментума q-периодной свечи:

  • q — число временных периодов ценового графика, участвующих в расчете моментума свечи;
  • price1 — цена [закрытия] на момент окончания периода q;
  • price2[q–1] — цена [открытия] на момент начала периода q.

Формула сглаженного моментума q-периодной свечи:

  • q — число временных периодов ценового графика, участвующих в расчете моментума q-периодной свечи;
  • price1 — цена [закрытия] на момент окончания периода q;
  • price2 — цена [открытия] на момент начала периода q;
  • cmtm(price1,price2,q)=price1-price2[q-1] — моментум q-периодной свечи;
  • EMA(cmtm(price1,price2,q),r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к моментуму q-периодной свечи;
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

4.2. Нормированный моментум свечи

4.2.1. Индекс моментума свечи

Индекс моментума свечи (Candle Momentum Index, CMI) — это индикатор нормированного моментума q-периодной свечи (нормированный сглаженный моментум q-периодной свечи). Величины сглаженного моментума q-периодной свечи приведены к процентному масштабу (интервал отображения [–100,+100]). Каждая величина сглаженного моментума q-периодной свечи нормируется на величину сглаженного моментума q-периодной свечи, взятую по абсолютному значению. Нормировка позволяет значение CMI интерпретировать как степень перекупленности (положительное значение) или перепроданности (отрицательное значение) рынка.

Формула индекса моментума свечи:

  • q — число временных периодов ценового графика, участвующих в расчете моментума q-периодной свечи;
  • price1 — цена [закрытия] на момент окончания периода q;
  • price2 — цена [открытия] на момент начала периода q;
  • cmtm(price1,pric2,q)=price1-pric2[q-1], — моментум q-периодной свечи;
  • |cmtm(price1,pric2,q)| — абсолютное значение моментума q-периодной свечи;
  • CMtm(price,q,r,s,u) — трижды сглаженный моментум q-периодной свечи;
  • EMA(. r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к показателю [соответственно: 1) к моментуму q-периодной свечи и 2) к абсолютному значению моментума q-периодной свечи];
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

4.2.1.1. CMI(price1,price2,q,r,s,u) — индекс моментума свечи. Спецификация

  • Имя файла: Blau_CMI.mq5
  • Наименование: Индекс моментума q-периодной свечи (нормированный сглаженный моментум q-периодной свечи; нормирование по абсолютному значению моментума q-периодной свечи) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется моментум q-периодной свечи (по умолчанию q=1);
    • r — период 1-й EMA, применительно к моментуму q-периодной свечи (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice1 — тип цены [закрытия] (по умолчанию AppliedPrice= PRICE_CLOSE );
    • AppliedPrice2 — тип цены [открытия] (по умолчанию AppliedPrice= PRICE_OPEN ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • (не обязательно) два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

4.2.2. Индекс свечи

Индекс свечи (Candle Stochastic Index, CSI) — это индикатор нормированного моментума q-периодной свечи (нормированный сглаженный моментум q-периодной свечи). Величины сглаженного моментума q-периодной свечи приведены к процентному масштабу (интервал отображения [–100,+100]).

Каждая величина сглаженного моментума q-периодной свечи нормируется на величину q-периодного диапазона колебания цены (или на длину q-периодной свечи). Нормировка позволяет интерпретировать значение CSI как степень перекупленности (положительное значение) или перепроданности (отрицательное значение) рынка.

Формула индекса свечи:

  • q — число временных периодов ценового графика, участвующих в расчете моментума q-периодной свечи;
  • price1 — цена [закрытия] на момент окончания периода q;
  • price2 — цена [открытия] на момент начала периода q;
  • cmtm(price1,pric2,q)=price1-price2[q-1] — моментум q-периодной свечи;
  • LL(q) — минимальное для предыдущих q периодов значение самой низкой цены за период q;
  • HH(q) — максимальное для предыдущих q периодов значение самой высокой цены за период q
  • HH(q)-LL(q) — q-периодный диапазон колебания цены (длина q-периодной свечи);
  • CMtm(price1,pric2,q,r,s,u) — трижды сглаженный моментум q-периодной свечи;
  • EMA(. r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к показателю [соответственно: 1) к моментуму q-периодной свечи и 2) к q-периодному диапазону колебания цены (или к длине q-периодной свечи)];
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

4.2.2.1. CSI(price1,price2,q,r,s,u) — индекс свечи. Спецификация

  • Имя файла: Blau_CSI.mq5
  • Наименование: Индекс q-периодной свечи (нормированный сглаженный моментум q-периодной свечи; нормирование по длине q-периодной свечи) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется моментум q-периодной свечи (по умолчанию q=1);
    • r — период 1-й EMA, применительно к моментуму q-периодной свечи (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • AppliedPrice1 — тип цены [закрытия] (по умолчанию AppliedPrice= PRICE_CLOSE );
    • AppliedPrice2 — тип цены [открытия] (по умолчанию AppliedPrice= PRICE_OPEN ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • (не обязательно) два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

4.3. Эргодический осцилляторы свечи

4.3.1. Эргодический CMI-осциллятор

Определение эргодического CMI-осциллятора:

  • Ergodic_CMI() — эргодика — индекс моментума свечи CMI(price1,price2,q,r,s,u);
  • SignalLine() — сигнальная линия — экспоненциальная скользящая средняя периода ul, примененная к эргодике;
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA эргодики.

Ergodic_CMI(price1,pric2,q,r,s,u,ul) — эргодический CMI-осциллятор. Спецификация

  • Имя файла: Blau_Ergodic_CMI.mq5
  • Наименование: Эргодический CMI-осциллятор (основан на индексе моментума свечи) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — эргодика (индекс моментума свечи):
      • q — период, по которому вычисляется моментум q-периодной свечи (по умолчанию q=1);
      • r — период 1-й EMA, применительно к моментуму q-периодной свечи (по умолчанию r=20);
      • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
      • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • графическое построение #1 — сигнальная линия:
      • ul — период EMA сигнальной линии, применительно к эргодике (по умолчанию ul=3);
    • AppliedPrice1 — тип цены [закрытия] (по умолчанию AppliedPrice= PRICE_CLOSE );
    • AppliedPrice2 — тип цены [открытия] (по умолчанию AppliedPrice= PRICE_OPEN ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • ul>0. Если ul=1, то сигнальная линия совпадает с эргодикой;
    • минимальный размер массива цен =(q-1+r+s+u+ul-4+1).

Программный код эргодического CMI-осциллятора

На примере индикатора Ergodic_CMI(price1,price2,r,s,u,ul):

1) Связь между индикаторными массивами, индикаторными буферами и графическими построениями:

2) Алгоритм расчета cmtm и |cmtm|:

4.3.2. Эргодический CSI-осциллятор

Определение эргодического CSI-осциллятора:

  • Ergodic_CSI() — эргодика — индекс свечи CSI(price1,price2,q,r,s,u);
  • SignalLine() — сигнальная линия — экспоненциальная скользящая средняя периода ul, примененная к эргодике;
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA эргодики.

4.3.2.1. Ergodic_CSI(price1,pric2,q,r,s,u,ul) — эргодический CSI-осциллятор. Спецификация

  • Имя файла: Blau_Ergodic_CSI.mq5
  • Наименование: Эргодический CSI-осциллятор (основан на индексе свечи) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — эргодика (индекс свечи):
      • q — период, по которому вычисляется моментум q-периодной свечи (по умолчанию q=1);
      • r — период 1-й EMA, применительно к моментуму q-периодной свечи (по умолчанию r=20);
      • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
      • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • графическое построение #1 — сигнальная линия:
      • ul — период EMA сигнальной линии, применительно к эргодике (по умолчанию ul=3);
    • AppliedPrice1 — тип цены [закрытия] (по умолчанию AppliedPrice= PRICE_CLOSE );
    • AppliedPrice2 — тип цены [открытия] (по умолчанию AppliedPrice= PRICE_OPEN ).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • ul>0. Если ul=1, то сигнальная линия совпадает с эргодикой;
    • минимальный размер массива цен =(q-1+r+s+u+ul-4+1).

4.3.2.2. Программный код эргодического CSI-осциллятора

На примере индикатора Ergodic_CSI(price1,price2,r,s,u,ul):

1) Связь между индикаторными массивами, индикаторными буферами и графическими построениями:

2) Алгоритм расчета cmtm и q-периодного диапазона колебания цены:

5. Направленный тренд

Рассматриваемые индикаторы (см. вложение):

  1. Blau_HLM.mq5 — индикатор виртуального закрытия (сложный q-периодный моментум по максимумам и минимумам; сглаженный сложный q-периодный моментум по максимумам и минимумам);
  2. Blau_DTI.mq5 — индекс направленного тренда (нормированный сглаженный сложный q-периодный моментум по максимумам и минимумам);
  3. Blau_Ergodic_DTI.mq5 — эргодический DTI-осциллятор (основан на индексе направленного тренда).

Рис. 5.1. Индикаторы направленного тренда, основанные на сложном моментуме по максимумам и минимумам

5.1. Сложный моментум по максимумам и минимумам

5.1.1. Определение моментумов ап-тренда и даун-тренда

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

Группа индикаторов темпа (моментум), рассмотренные в п. 1, позволяют вычислить моментум по максимумам цены:

и по минимумам цены:

Моментум ап-тренда, или моментум растущих максимумов (High Momentum Up, HMU) — это положительная разность между максимальной ценой текущего периода и максимальной ценой на начало q-периодного диапазона колебания цены. Величина q-периодного моментума ап-тренда показывает относительную скорость роста максимальной цены текущего периода по сравнению с максимальной ценой на начало q-периодного диапазона колебания цены.

Формула q-периодного моментума ап-тренда:

  • q — число временных периодов ценового графика, участвующих в расчете моментума ап-тренда;
  • High — максимальная цена текущего периода;
  • High[q–1] — максимальная цена (q-1) периодов назад.

Моментум даун-тренда, или моментум убывающих минимумов (Low Momentum Down, LMD) — это положительная разность между минимальной ценой текущего периода и минимальной ценой на начало q-периодного диапазона колебания цены. Величина q-периодного моментума даун-тренда показывает относительную скорость снижения минимальной цены текущего периода по сравнению с минимальной ценой на начало q-периодного диапазона колебания цены.

Формула q-периодного моментума даун-тренда:

  • q — число временных периодов ценового графика, участвующих в расчете моментума даун-тренда;
  • Low — минимальная цена текущего периода;
  • Low[q–1] — минимальная цена (q-1) периодов назад.

Сложный моментум по максимумам и минимумам (High-Low Momentum, HLM) — это разность между q-периодными моментумом ап-тренда и q-периодным моментумом даун-тренда. Знак сложного моментума по максимумам и минимумам указывает на тенденцию изменения цены: положительный HLM — тенденция роста цены (повышательный тренд), отрицательный — тенденция снижения цены (понижательный тренд).

  • q — число временных периодов ценового графика, участвующих в расчете моментумов ап-тренда и даун-тренда;
  • HMU(q) — моментум ап-тренда за период q;
  • LMD(q) — моментум даун-тренда за период q.

Формула сглаженного сложного q-периодного моментума по максимума и минимумам (виртуальное закрытие):

  • q — число временных периодов ценового графика, участвующих в расчете моментумов ап-тренда и даун-тренда;
  • HMU(q) — моментум ап-тренда за период q;
  • LMD(q) — моментум даун-тренда за период q;
  • HLM(q)=HMU(q)-LMD(q) — сложный q-периодный моментум по максимумам и минимумам;
  • EMA(HLM(q),r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к сложному q-периодному моментуму по максимумам и минимумам;
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

Кривая графика накопленной суммы сложных моментумов по максимумам и минимумам называется виртуальное закрытие.

5.2. Индекс направленного тренда

5.2.1. Определение индекса направленного тренда

Индекс направленного тренда (Directional Trend Index, DTI) — это индикатор нормированного сложного q-периодного моментума по максимумам и минимумам (нормированный сглаженный HLM). Величины сглаженного HLM приведены к процентному масштабу (интервал отображения [–100,+100]).

Каждая величина сглаженного HLM нормируется на величину сглаженного HLM, взятую по абсолютному значению. Нормировка позволяет значение DTI интерпретировать как степень перекупленности (положительное значение) или перепроданности (отрицательное значение) рынка.

Формула индекса направленного тренда:

  • q — число временных периодов ценового графика, участвующих в расчете моментумов ап-тренда и даун-тренда;
  • HLM(q)=HMU(q)-LMD(q) — сложный q-периодный моментум по максимумам и минимумам;
  • |HLM(q)| — абсолютное значение HLM(q);
  • HLM(q,r,s,u) — трижды сглаженный HLM(q);
  • EMA(. r) — первое сглаживание — экспоненциальная скользящая средняя (экспонента) периода r, примененная к показателю [соответственно: 1) к HLM(q) и 2) к абсолютному значению HLM(q)];
  • EMA(EMA(. r),s) — второе сглаживание — экспонента периода s, примененная к экспоненте периода r;
  • EMA(EMA(EMA(. r),s),u) — третье сглаживание — экспонента периода u, примененная к результату второго сглаживания.

5.2.2. DTI(q,r,s,u) — индекс направленного тренда. Спецификация

  • Имя файла: Blau_DTI.mq5
  • Наименование: Индекс направленного тренда (нормированный сглаженный сложный q-периодный моментум по максимумам и минимумам) по Уильяму Блау.
  • Входные параметры:
    • q — период, по которому вычисляется HLM (по умолчанию q=2);
    • r — период 1-й EMA, применительно к HLM (по умолчанию r=20);
    • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
    • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3).
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • (не обязательно) два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • минимальный размер массива цен =(q-1+r+s+u-3+1).

5.3. Эргодический DTI-осциллятор

5.3.1. Определение эргодического DTI-осциллятора

  • Ergodic_DTI() — эргодика — индекс направленного тренда DTI(q,r,s,u);
  • SignalLine() — сигнальная линия — экспоненциальная скользящая средняя периода ul, примененная к эргодике;
  • ul — период EMA сигнальной линии — по Уильяму Блау значение ul должно быть равно периоду последней значимой (>1) EMA эргодики.

5.3.2. Ergodic_DTI(q,r,s,u,ul) — эргодический DTI-осциллятор. Спецификация

  • Имя файла: Blau_Ergodic_DTI.mq5
  • Наименование: Эргодический DTI-осциллятор (основан на индексе направленного тренда) по Уильяму Блау.
  • Входные параметры:
    • графическое построение #0 — эргодика (индекс направленного тренда):
      • q — период, по которому вычисляется HLM (по умолчанию q=2);
      • r — период 1-й EMA, применительно к HLM (по умолчанию r=20);
      • s — период 2-й EMA, применительно к результату первого сглаживания (по умолчанию s=5);
      • u — период 3-й EMA, применительно к результату второго сглаживания (по умолчанию u=3);
    • графическое построение #1 — сигнальная линия:
      • ul — период EMA сигнальной линии, применительно к эргодике (по умолчанию ul=3);
  • Дополнительно:
    • выводится в отдельном окне;
    • изменить стиль отрисовки каждого графического построения — цвет, толщину, стиль линии (вкладка «Цвета»);
    • два уровня (по умолчанию –25 и +25) — добавить/удалить уровень; изменить значение, описание уровня; изменить стиль отрисовки уровней (вкладка «Уровни»);
    • изменить нижнее (по умолчанию –100) и верхнее (по умолчанию +100) ограничения шкалы отдельного окна индикатора (вкладка «Шкала»).
  • Ограничения:
    • q>0;
    • r>0, s>0, u>0. Если r, s или u равны 1, то на соответствующем периоде EMA сглаживание не выполняется;
    • ul>0. Если ul=1, то сигнальная линия совпадает с эргодикой;
    • минимальный размер массива цен =(q-1+r+s+u+ul-4+1).

5.4. Программный код эргодического DTI-осциллятора

На примере индикатора Ergodic_DTI(q,r,s,u,ul):

1) Связь между индикаторными массивами, индикаторными буферами и графическими построениями:

2) Алгоритм расчета HLM и |HML|:

Заключение

В первой части статьи «Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 1: Индикаторы » представлено описание разработанных на MQL5 индикаторов и осцилляторов из книги Уильяма Блау (William Blau) «Моментум, направленность и расхождение».

О том, как использовать эти индикаторы и осцилляторы при принятии торговых решений будет описано во второй части статьи «Индикаторы и торговые системы Уильяма Блау на MQL5. Часть 2: Торговые системы «.

Эти брокеры дают бонусы за открытие счета:
  • Бинариум
    Бинариум

    1 место во всех рейтингах! Лучший брокер бинарных опционов по отзывам трейдерам! Прекрасно подходит для новичков. Получите свой бонус за регистрацию счета:

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