• Обзор
  • Отзывы (2)
  • Обсуждение (31)
  • Что нового

ClusterSMA

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

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


Параметры

1. General settings (общие настройки). В этот раздел включены параметры внешнего вида и расчета основной линии индикатора ClusterSMA:

  • Max bars in chart - максимальное количество баров, рассчитываемых и отображаемых в окне индикатора при его старте или пересчете. По умолчанию установлено значение 256 баров. Это существенно ускоряет подготовку индикатора, в том числе и при тестировании. При нулевом значении параметра индикатор рассчитывается на всей доступной истории. Минимальное количество отображаемых баров - три.
  • Recalculation of the last bar - позволяет выбрать режим пересчета последнего незавершенного бара. По умолчанию установлен режим Every tick. Есть три варианта для выбора:
    • Every tick - на последнем незавершенном баре индикатор пересчитывается каждый тик. Рекомендуется использовать этот режим, если показания индикатора важны на этом баре.
    • Every new minute bar - на последнем незавершенном баре индикатор пересчитывается только в момент открытия нового бара на минутном таймфрейме. Рекомендуется использовать этот режим на таймфреймах больше одной минуты. Это позволяет снизить нагрузку на процессор и в то же время отслеживать изменения показания индикатора раз в минуту.
    • Every new bar - на последнем незавершенном баре индикатор пересчитывается только в момент открытия нового бара на текущем таймфрейме. Часто значения индикатора на этом баре не принимаются во внимание при определении сигнала для торговой системы. Выбрав эту опцию, можно существенно снизить время расчета индикатора, в том числе и при тестировании стратегий.
  • Color ClusterSMA up - цвет линии ClusterSMA вверх.
  • Color ClusterSMA down - цвет линии ClusterSMA вниз.
  • Width ClusterSMA - ширина линии ClusterSMA.
  • Style ClusterSMA - стиль отрисовки линии ClusterSMA. При значении "Width ClusterSMA" равным 1 кроме сплошной линии (Solid) можно выбрать прерывистую (Broken), пунктирную (Dotted), штрих-пунктирную (Dash-dot), либо линию штрих - две точки (Dash - two points).

2. SMA settings (настройки SMA). В этот раздел параметров включены настройки расчета и внешнего вида линии индикатора SMA:

  • Line SMA - позволяет включать или отключать отображение линии индикатора SMA в окне терминала и его значений в окне данных. Эта опция не отключает расчет SMA в самом индикаторе, так как его значения используются.
  • Period SMA - параметр, который может принимать значения от 1 до 255. Он имеет тот же физический смысл, что и параметр N в стандартном индикаторе Simple Moving Average (SMA). По умолчанию установлено 14. Ограничение максимума в 255 связано с "тяжелой" расчетной частью кластерного фильтра.
  • Color SMA up - цвет линии SMA вверх.
  • Color SMA down - цвет линии SMA вниз.
  • Width SMA - ширина линии SMA.
  • Style SMA - стиль отрисовки линии SMA. При значении "Width SMA" равным 1 кроме сплошной линии (Solid) можно выбрать прерывистую (Broken), пунктирную (Dotted), штрих-пунктирную (Dash-dot), либо линию штрих - две точки (Dash - two points).

3. Settings of transform (настройки преобразования). В этот раздел параметров включены настройки влияющие на преобразование исходного ряда (цены):

  • Line of transform - позволяет включать или отключать отображение линии преобразованной цены в окне терминала и ее значений в окне данных. Эта опция не отключает расчет преобразования в самом индикаторе.Для отключения преобразования используйте параметр "Transform".
  • Transform (Преобразование) - позволяет выбрать метод преобразования исходного ряда (цены) перед использованием в алгоритме ClusterSMA. Параметр имеет следующие варианты для выбора:
    • No - преобразования не производятся, используется исходный ряд (цена);
    • Haar wavelet - для преобразования исходного ряда (цены) применяется вейвлет Хаара.
    • Modified SMA - для преобразования исходного ряда (цены) применяется модифицированная простая скользящая средняя из статьи Технический анализ: Как мы анализируем? (рис.2).

Для наглядности "Haar wavelet" и "Modified SMA" строятся пунктирной линией, затем их значения используются в алгоритме ClusterSMA. Несмотря на то что несколько последних значений этих линий перерисовываются, ClusterSMA не перерисовывается (кроме нулевого бара). Благодаря этим опциям можно получить более ранние сигналы на разворот тренда, сохраняя приемлемую устойчивость на флетах.

4. Alerts (Сигналы).

  • Bar of alert - номер бара на котором проверяется сигнал (0 - последний незавершенный бар). Сигналы подаются при смене тренда линии индикатора ClusterSMA. Если "Bar of alert" больше 0, то сигнал будет только в том случае, если на указанном баре и на всех последующих барах движение индикатора в одном направлении. Таким образом сигналы подаются только при устойчивом тренде, и игнорируются во всех остальных случаях с целью уменьшения ложных срабатываний.
  • Sound - включение/отключение звукового сигнала.
  • Log - печатается сообщение о сигнале в журнал.
  • Alert - подается звуковой сигнал, в журнал и в открывшееся диалоговое окно выводится сообщение о сигнале.
  • Mail - отправляет электронное письмо о сигнале по адресу, указанному в окне настроек терминала на закладке "Почта".
  • Notification - отправляет уведомление на мобильные терминалы, чьи MetaQuotes ID указаны в окне настроек терминала на закладке "Уведомления".


Внешний вид

Индикатор строит две линии. Одна из них - простая скользящая средняя (SMA), вторая линия является результатом работы кластерного фильтра (SMA+Cluster).

Обо всех новостях проекта вы можете узнать на вкладках "Обсуждения" и "Что нового", а также в блоге.
Pascal Wetzel
866
2016.07.30 03:13 
 

Good work!

Nikolay Moskalev
2305
2015.10.12 14:48 
 

Спасибо!

Версия 1.7 - 2016.01.07
1. В раздел "1. General settings" входных параметров добавлены настройки цвета, ширины и стиля линии индикатора ClusterSMA.
2. В раздел "2. SMA settings" входных параметров добавлены настройки цвета, ширины и стиля линии индикатора SMA.
3. В раздел "4. Alerts" входных параметров добавлено включение/отключение следующих оповещений о смене тренда:
Log - печатается сообщение о сигнале в журнал;
Alert - подается звуковой сигнал, в журнал и в открывшееся диалоговое окно выводится сообщение о сигнале;
Mail - отправляет электронное письмо о сигнале по адресу, указанному в окне настроек терминала на закладке "Почта";
Notification - отправляет уведомление на мобильные терминалы, чьи MetaQuotes ID указаны в окне настроек терминала на закладке "Уведомления".
Версия 1.6 - 2015.12.02
1. Уменьшено время расчета индикатора, оптимизирован код.
2. Улучшена реакция индикатора на участках возможного смена тренда, уменьшена задержка. Подробнее в "Обсуждении"
3. Во входные параметры добавлен раздел 4 "Alerts", предназначенный для настройки сигналов индикатора:
"Bar of alert" - номер бара на котором проверяется сигнал (0 - последний незавершенный бар);
"Sound" - включение/отключение звукового сигнала.
Сигналы подаются при смене тренда линии индикатора. Если "Bar of alert" больше 0, то сигнал будет только в том случае, если на указанном баре и на всех последующих барах движение индикатора в одном направлении. Таким образом сигналы подаются только при устойчивом тренде, и игнорируются во всех остальных случаях с целью уменьшения ложных срабатываний.
Версия 1.5 - 2015.10.19
1. В окне настроек индикатора входные параметры разделены на три группы.
2. Добавлен параметр Max bars in chart - максимальное количество баров, рассчитываемых и отображаемых в окне индикатора при его старте или пересчете. По умолчанию установлено значение 256 баров. Это существенно ускоряет подготовку индикатора, в том числе и при тестировании. При нулевом значении параметра индикатор рассчитывается на всей доступной истории. Минимальное количество отображаемых баров - три.
3. Добавлен параметр Recalculation of the last bar - выбрать режим пересчета последнего незавершенного бара. По умолчанию установлен режим Every tick. В этой версии есть три варианта для выбора:
Every tick - на последнем незавершенном баре индикатор, как и в предыдущей версии, пересчитывается каждый тик. Рекомендуется использовать этот режим, если показания индикатора важны на этом баре.
Every new minute bar - на последнем незавершенном баре индикатор пересчитывается только в момент открытия нового бара на минутном таймфрейме. Рекомендуется использовать этот режим на таймфреймах больше одной минуты. Это позволяет снизить нагрузку на процессор и в то же время отслеживать изменения показания индикатора раз в минуту.
Every new bar - на последнем незавершенном баре индикатор пересчитывается только в момент открытия нового бара на текущем таймфрейме. Часто значения индикатора на этом баре не принимаются во внимание при определении сигнала для торговой системы. Выбрав эту опцию, можно существенно снизить время расчета индикатора, в том числе и при тестировании стратегий.
4. Добавлен параметр Line SMA - включать/отключать отображение линии индикатора SMA в окне терминала и его значений в окне данных. Эта опция не отключает расчет SMA в самом индикаторе, так как его значения используются.
5. Добавлен параметр Line of transform - позволяет включать и отключать отображение линии преобразованной цены в окне терминала и ее значений в окне данных. Эта опция не отключает расчет преобразования в самом индикаторе.
6. Исправлены ошибки в кластерном фильтре, которые могут повлиять на итоговую линию индикатора. Рекомендую перепроверить стратегии, которые используют этот индикатор.
Версия 1.4 - 2015.09.15
Исправлена ошибка при выборе опции No в параметре Transform. Расчет производился верно, но линия индикатора не отображалась.
Версия 1.3 - 2015.09.11
Добавлена новая опция "Modified SMA" в параметр Transform. При выборе этой опции для преобразования исходного ряда (цены) применяется модифицированная простая скользящая средняя из статьи "Технический анализ: Как мы анализируем?", рис.2 (https://www.mql5.com/ru/articles/174)
Для наглядности Modified SMA строится пунктирной линией, затем ее значения используются в алгоритме ClusterSMA. Несмотря на то, что несколько последних значений этой линии перерисовываются, ClusterSMA не перерисовывается (кроме нулевого бара). Благодаря этой опции можно раньше получить сигналы на разворот тренда, сохраняя приемлемую устойчивость на флэтах. Подробности - во вкладке "Обсуждение".
Версия 1.2 - 2015.09.01
Добавлен новый параметр Transform (Преобразование), который позволяет выбрать метод преобразования исходного ряда (цены) перед использованием в алгоритме ClusterSMA. Пока параметр имеет два значения:
"No" - преобразования не производятся, используется исходный ряд (цена);
"Haar wavelet" - для преобразования исходного ряда (цены) применяется вейвлет Хаара (https://en.wikipedia.org/wiki/Haar_wavelet). Для наглядности вейвлет строится пунктирной линией, затем его значения используются в алгоритме ClusterSMA. Несмотря на то что несколько последних значений линии вейвлета перерисовываются, ClusterSMA не перерисовывается (кроме нулевого бара). Подробности - во вкладке "Обсуждение".
Версия 1.1 - 2015.08.17
Изменена работа встроенного фильтра в местах вероятной смены тренда. Подробнее в обсуждении.