Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Просмотров:
21
Рейтинг:
(1)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу




Фильтр тренда «Альфа-Бета» с матричной панелью инструментов для нескольких таймфреймов

1. Обзор

Фильтр тренда «Альфа-Бета» — это индикатор прогнозного сглаживания, основанный на теории управления и цифровой обработке сигналов. Концептуально он представляет собой упрощённый фильтр Калмана в режиме установившегося состояния. В то время как стандартные скользящие средние (SMA, EMA, LWMA) строго опираются на усреднение прошлых данных — и, следовательно, по своей сути отстают от текущего ценового движения — фильтр «Альфа-Бета» активно оценивает текущую «истинную» цену и скорость тренда, одновременно устраняя рыночный шум.

Данная конкретная реализация на MQL5 усовершенствует классический однолинейный индикатор за счет включения матричной панели инструментов, поддерживающей несколько символов и временных интервалов. Она позволяет трейдерам отслеживать трендовую направленность «Альфа-Бета» по всему портфелю непосредственно на одном графике, который динамически обновляется при каждом тике.

2. Математический движок

Фильтр работает итеративно с каждым новым ценовым баром. Он опирается на два основных коэффициента настройки:

  • $\alpha$ (альфа): коэффициент чувствительности к цене. Он регулирует вес, придаваемый исходным данным о новой цене по сравнению с внутренним прогнозом фильтра.

  • $\beta$ (бета): коэффициент чувствительности к скорости. Он регулирует степень реагирования на изменения импульса тренда.

Алгоритм выполняется в два отдельных этапа для каждого бара:

Этап 1: Этап прогнозирования

До закрытия текущего бара фильтр прогнозирует текущую цену ($\hat{P}_{t}$) и скорость ($\hat{V}_{t}$) на основе рассчитанного состояния предыдущего бара:

$$\hat{P}_{t}=P_{t-1}+V_{t-1}$$
$$\hat{V}_{t}=V_{t-1}$$

Этап 2: Шаг обновления

Как только становится известна фактическая цена закрытия ($Z_{t}$), фильтр вычисляет погрешность/остаток ($E_{t}$) между своим прогнозом и фактическим значением и обновляет своё внутреннее состояние:

$$E_{t}=Z_{t}-\hat{P}_{t}$$
$$P_{t}=\hat{P}_{t}+\alpha E_{t}$$
$$V_{t}=\hat{V}_{t}+\beta E_{t}$$

Где:

  • $Z_{t}$: фактическая цена закрытия текущего бара.

  • $P_{t}$: обновлённая, сглаженная оценка цены (отображаемая на графике).

  • $V_{t}$: обновлённая скорость (используется для определения направленности тренда — бычьего или медвежьего).

3. Основные особенности данной реализации

  • Сглаживание с нулевой задержкой: Линия основного индикатора гораздо плотнее следует за ценовым движением, чем традиционные EMA, что делает её отличной базовой линией для стратегий на быстрых пересечениях.

  • Динамическое цветовое кодирование: основная линия на графике использует функцию DRAW_COLOR_LINE для автоматического переключения между синим (бычья скорость) и красным (медвежья скорость) цветами в зависимости от внутреннего состояния $V_{t}$.

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

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

4. Объяснение входных параметров

Настройки механизма фильтрации

  • inpAlpha (по умолчанию: $0,2$): Диапазон обычно составляет от $0,1$ до $0,9$. Более высокое значение $\alpha$ обеспечивает плотное следование за исходной ценой (отлично подходит для скальпинга); более низкое значение $\alpha$ значительно сглаживает линию, игнорируя боковые колебания (лучше подходит для свинг-трейдинга).

  • inpBeta (по умолчанию: $0,05$): Диапазон обычно составляет от $0,01$ до $0,5$. Более высокое значение $\beta$ обеспечивает агрессивную реакцию на внезапные изменения импульса. Очень низкое значение $\beta$ предполагает наличие устойчивого, непоколебимого тренда.

Настройки сетки панели инструментов

  • inpSymbols (по умолчанию: «EURUSD,GBPUSD,USDJPY,AUDUSD»): строка, разделенная запятыми, с символами, которые вы хотите отслеживать. Код автоматически анализирует её с помощью StringSplit().

  • Переключатели таймфреймов (от showM5 до showD1): булевы параметры, позволяющие настраивать, какие столбцы отображаются на панели инструментов матрицы.

5. Архитектура и основные особенности кода

Разработчикам MQL5, изучающим исходный код, следует обратить внимание на следующие структурные решения:

  • Индексирование временных рядов: MQL5 по умолчанию индексирует массивы от самого старого к самому новому. Чтобы соответствовать стандартной торговой логике (где [0] — текущий бар), в коде активно используется функция ArraySetAsSeries(buffer, true) для всех буферов индикаторов и полученных массивов.

  • Вспомогательная функция извлечения состояния: функция GetStateForTarget() представляет собой автономный цикл, используемый панелью инструментов. Она извлекает 50 баров цен закрытия для целевого символа/таймфрейма, инициализирует механизм прогнозирования и возвращает целочисленное значение состояния (0 — «бычий», 1 — «медвежий») без необходимости вызова внешних функций iCustom.

  • Чистая деинициализация объектов: функция OnDeinit() проходит по префиксу пользовательского интерфейса (AB_Matrix_), чтобы гарантировать, что все графические метки будут удалены с графика в момент удаления индикатора.

6. Торговые приложения

  • Настройка для скальпинга: попробуйте значение $\alpha$ равное 0,45 и $\beta$ равное 0,12. Линия с цветовой маркировкой будет быстро менять цвет, что позволит вам улавливать микротренды на графиках M1 или M5.

  • Настройка для макро-свинга: Уменьшите значения до $\alpha$ = 0,15 и $\beta$ = 0,02. Индикатор будет оставаться ровным во время внутридневного шума, удерживая вас в сделке до тех пор, пока не произойдет подлинный макроскопический сдвиг скорости.

  • Совпадение матрицы: используйте панель инструментов, чтобы открывать сделки на текущем графике только тогда, когда ячейки H1, H4 и D1 для данного символа полностью совпадают по цвету.

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

SuperTrend_Amarnath_Kondiyan_Mohan SuperTrend_Amarnath_Kondiyan_Mohan

Супертренд с управлением TP и SL по корзине

CKS Position Risk Dashboard CKS Position Risk Dashboard

Панель управления MT5, доступная только для просмотра, для определения размера лота с учетом рисков, оценки состояния счета, ограничений брокера по объему торгов и текущей подверженности риску по символам.

Trend Flasher -AKM Trend Flasher -AKM

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

YURAZ_MCCH YURAZ_MCCH

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