Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

Adaptive Kalman Trend Filter with Regime Bands submission - индикатор для MetaTrader 5

Просмотров:
20
Рейтинг:
(1)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Адаптивный фильтр тренда Калмана с полосами режимов

Адаптивный фильтр тренда Калмана с полосами режимов

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

Автор: АДЕДАЙО ГБАДЕБО

Идея, лежащая в основе

У простого фильтра Калмана есть один недостаток, который рано или поздно проявляется на каждом графике: параметры шума процесса (Q) и шума измерения (R), определяющие, насколько быстро фильтр доверяет новым ценовым данным, являются фиксированными. Если установить низкое значение Q, линия останется гладкой в условиях бокового движения, но будет сильно отставать, как только начнётся реальный тренд. Если установить высокое значение Q, линия будет плотно следовать за трендами, но будет подвергаться резким колебаниям в каждом диапазоне. Данный индикатор устраняет этот компромисс, делая параметр Q адаптивным: на каждом баре он вычисляет коэффициент эффективности Кауфмана (ER) — чистое направленное движение за период анализа, деленное на сумму межбаровых изменений в том же окне — и использует его для масштабирования Q в пределах от минимального до максимального множителя. Когда ER близок к 1 (чистое направленное ценовое движение), уровень шума фильтра повышается до максимума, поэтому коэффициент усиления Калмана увеличивается, и линия плотно прилегает к цене. Когда ER близок к 0 (перекрывающиеся бары без четкого направления), Q падает к минимуму, коэффициент уменьшается, и линия сглаживает шум, а не гонится за ним.

Тот же самый коэффициент эффективности (ER) определяет две полосы режимов, нанесенные вокруг фильтра. Их ширина равна скользящему стандартному отклонению остатка (цена минус линия Калмана), умноженному на коэффициент, заданный пользователем, причем этот коэффициент дополнительно увеличивается по мере снижения ER, поэтому полосы естественным образом сужаются в режиме тренда и расширяются в режиме бокового движения. Поскольку весь фильтр представляет собой единое рекурсивное состояние, переносимое от бара к бару (без перерисовки и прогнозирования), он работает с любыми инструментами и таймфреймами; он был разработан и протестирован в первую очередь на парах EURUSD и GBPUSD на графиках H1 и H4, где переход между трендовыми и боковыми участками происходит достаточно часто, чтобы адаптивность имела значение.

Как интерпретировать результаты

  • Линия Калмана — оценка основного тренда, отображаемая в виде линии с цветовой маркировкой непосредственно на графике. Она окрашивается в один цвет, когда цена находится в соответствующем трендовом режиме и движется вверх, во второй цвет — при нисходящем тренде, и в третий, нейтральный цвет — всякий раз, когда коэффициент эффективности находится ниже порогового значения режима, а рынок классифицируется как находящийся в диапазоне.
  • Адаптивный шум процесса — внутренне коэффициент Q фильтра пересчитывается для каждого бара как линейная смесь значений InpMinQMultiplier и InpMaxQMultiplier, взвешенная по текущему коэффициенту эффективности. Именно это обеспечивает линии низкую задержку в трендах без ущерба для плавности в условиях бокового движения, в отличие от скользящего среднего с фиксированными параметрами.
  • Верхняя и нижняя полосы режима — пунктирные линии, обрамляющие линию Калмана на расстоянии, пропорциональном недавней остаточной волатильности. Узкие полосы сигнализируют о тренде с низким уровнем шума и высокой эффективностью; полосы, остающиеся широкими и примерно ровными, сигнализируют о волатильном отрезке с возвратом к среднему значению, где не следует полагаться на цвет тренда для определения направления.
  • Логика сигнала — смена цвета линии Калмана (из серого на направленный или из направленного на серый) происходит только при закрытии свечи, поэтому перерисовки не происходит. Смена цвета на направленный, когда цена находится вблизи внешней полосы, указывает на то, что трендовый режим только начался; переход к нейтральному цвету или цвету бокового движения после длительного тренда является ранним сигналом того, что импульс ослабевает ещё до того, как сама цена развернётся.
  • Практическое применение — трейдеры, следующие за трендом, могут рассматривать устойчивый направленный цвет как сигнал «оставаться в позиции» и выходить из рынка или сужать стопы, как только линия становится нейтрально-серой. Трейдеры, торгующие на возвращении к среднему значению, могут поступать наоборот: отдавать предпочтение сбыванию импульса в направлении линии Калмана именно тогда, когда цвет нейтральный, а цена тестирует одну из внешних полос, и оставаться в стороне, как только линия становится направленной.

Внешние переменные (входные данные)

Входные данные По умолчанию Назначение
InpPriceType PRICE_CLOSE Применяемая цена, подаваемая в фильтр Калмана.
InpBaseProcessNoise 0,005 Базовый шум процесса Калмана (Q) до масштабирования режима.
InpMeasurementNoise 0,80 Шум измерения в процессе Калмана (R); более высокие значения дополнительно сглаживают линию и замедляют коэффициент усиления.
InpMinQMultiplier 0,5 Нижняя граница, применяемая к Q, когда коэффициент эффективности близок к нулю (режим измерения диапазона).
InpMaxQMultiplier 5,0 Верхняя граница, применяемая к Q, когда коэффициент эффективности близок к единице (тренд).
InpEfficiencyPeriod 20 Окно обратного анализа, используемое для расчета коэффициента эффективности Кауфмана.
InpBandPeriod 20 Окно обратного обзора для скользящего стандартного отклонения остатков за пределами полос.
InpBandMultiplier 1,5 Базовый множитель, применяемый к волатильности остатков для установки расстояния полос от линии.
InpRegimeThreshold 0,40 Пороговое значение коэффициента эффективности, при превышении которого режим классифицируется как трендовый, а не как диапазонный.

Рекомендации по использованию

Загрузите индикатор на чистый шаблон графика, увеличив толщину линии до 2 или 3 для лучшей видимости, и оставьте стандартную цветовую схему, оптимизированную для отображения в оттенках серого, либо замените её на собственные цвета для восходящего/нисходящего тренда и бокового движения. На графиках H1–H4 начинайте с периодов по умолчанию и сокращайте InpEfficiencyPeriod только в том случае, если вы торгуете более динамичным инструментом, который быстрее переходит из одного режима в другой. Сопоставляйте состояние цвета с вторичным подтверждением, таким как пробой предыдущего максимума или минимума колебания, прежде чем рассматривать новый разворот направления как сигнал входа, а два или три последовательных бара нейтрального цвета вблизи полосы рассматривайте как самый сильный сигнал возврата к среднему значению, который дает индикатор. Поскольку фильтр никогда не перерисовывает цвета закрытых баров, также целесообразно проводить бэктестинг правил формирования сигналов, построенных непосредственно на основе цветового состояния буфера.



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

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/76149

BMP Chart Wallpaper BMP Chart Wallpaper

Фоновый рисунок с графиком BMP для MT5

Custom Simple Moving Average Custom Simple Moving Average

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

YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя

Скрипт рисует уровни Рудолфа Акселя

YURAZ_MCCH YURAZ_MCCH

Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.