Specification
## Техническое задание (ТЗ) на разработку индикатора для MT5
**Название индикатора:**
ZoneBlockRadar
**Описание и назначение:**
Индикатор должен находить и маркировать активные бычьи и медвежьи ордер блоки (ББЗ и МБЗ) на установленном таймфрейме. Он визуализирует уровни этих блоков (открытие, закрытие) и автоматически подтягивает правую границу блока на графике до пересечения ценой. При пересечении цены верхней границы ББЗ или нижней границы МБЗ индикатор должен отправлять push-уведомления.
Алгоритм определения ордер блоков :
При запуске индикатора начинается поиск ордер блоков на истории, анализируя график справа налево. Далее описаны шаги алгоритма:
- Определение тренда и экспансии:
- При запуске индикатор определяет последняя экспансия (импульсивное движение).
- Поиск медвежьего ордер блока (МБЗ):
- Если последняя экспансия была в шорт, начинается поиск первого бычьего бара.
- Медвежий ордер блок формируется, если перед этим бычьим баром есть минимум три свечи, находящиеся в его диапазоне телами и тенями. Такой блок считается активным до полного поглощения телом бычьей свечи.
- Поиск бычьего ордер блока (ББЗ):
- Если последняя экспансия была в лонг, начинается поиск первого Медвежьего бара.
- Бычьий ордер блок формируется, если перед этим Медвежий баром есть минимум три свечи, находящиеся в его диапазоне телами и тенями. Такой блок считается активным до полного поглощения телом Медвежий свечи.
- Сканирование графика:
- Сканирование заканчивается когда найдутся ближайший к значению цены и по направлению тренда по 2 активных Медвежьего и бычьего ордер блока.
- Сканирование на истории ограничен до 200 баров . (значение задается в параметрах, 200 по умолчанию).
Экспансия в шорт:
- Экспансия в шорт состоит из двух и более свечей, которые формируют импульсивное движение вниз.
- Экспансия начинается с поглощения, по телам, медвежьей свечой последнюю бычью свечу.
- Экспансия заканчивается на поглощении медвежьей свечи телом одной или нескольких лонговых свечей.
- Экспансия в шорт должна обновить два предыдущих минимума, что подтверждает силу нисходящего движения.
Экспансия в лонг:
- Экспансия в лонг состоит из двух и более свечей, формирующих импульсивное движение вверх.
- Экспансия начинается с поглощения телом бычьей свечи тела последней медвежьей свечи.
- Экспансия заканчивается на поглощении бычьей свечи шорт-движением из одной или нескольких свечей.
- Экспансия должна обновить два предыдущих максимума, что подтверждает силу восходящего движения.
**Входные параметры индикатора:**
- Цвет и стиль прямоугольников для ББЗ и МБЗ (настраиваемые пользователем).
- Толщина и стиль линий для границ прямоугольников.
- Включение/отключение push-уведомлений при пересечении границы.
- Количество активных блоков для отображения (по умолчанию — 2 последних ББЗ и 2 последних МБЗ).
**Условия для формирования блоков:**
- Бычий ордер блок (ББЗ) — это последняя медвежья свеча, после которой происходит импульсивное движение вверх, обновляющее два предыдущих максимума.
- Движение должно обновить два предыдущих максимума и закончиться на поглощении бычьей свечи шорт-движением из одной или нескольких свечей.
- Перед ББЗ должно быть как минимум 3 свечи, которые пересекают его максимум или минимум своими телами или тенями.
- Блок активен до полного поглощения медвежьей свечой.
- Медвежий ордер блок (МБЗ) — это последняя бычья свеча, после которой происходит импульсивное движение вниз, обновляющее два предыдущих минимума.
- Движение должно обновить два предыдущих минимума и закончиться на поглощении медвежьей свечи лонг-движением из одной или нескольких свечей.
- Перед МБЗ должно быть как минимум 3 свечи, которые пересекают его минимум или максимум своими телами или тенями.
- Блок активен до полного поглощения бычьей свечой.
**Вывод на график:**
- Индикатор маркирует ББЗ и МБЗ прямоугольниками по значениям открытия и закрытия.
- на Закрытии свечи Правая граница всех активных прямоугольников получает значение текущего времени +3 бара в право.
- Прямоугольники синхронизируются между всеми графиками с одинаковым символом.
- В дескриптор прямоугольника должна в отображаться на графике с информацией о таймфрейм+пробел+МБЗ или ББЗ.
**Оповещения:**
- Индикатор отправляет push-уведомления, когда цена каждый раз пересекает верхнюю границу ББЗ или нижнюю границу МБЗ.
- Уведомления должны приходить на все устройства, подключённые к аккаунту (например, на смартфон).
- Возможность отключения уведомлений через параметры.
**Таймфреймы и символы:**
- Индикатор должен работать на всех таймфреймах, доступных в MT5, с поддержкой любых символов.
**Прямоугольники:**
- Прямоугольник удаляется после поглощения ордер блока, когда он перестает быть активным.
**Требования к производительности:**
- Индикатор должен быть оптимизирован для работы без задержек при больших объёмах данных.
- Программист должен предоставить:
- инструкцию по настройке и использованию индикатора.
- исходный код для расширения и корректировки индикатора .