Обсуждение статьи "Создание пользовательских индикаторов в MQL5 (Часть 3): Улучшение многошкальной визуализации с секторным и круговым стилями"

 

Опубликована статья Создание пользовательских индикаторов в MQL5 (Часть 3): Улучшение многошкальной визуализации с секторным и круговым стилями:

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

Мультишкальная архитектура строится на базовом классе для настраиваемых шкал и вводит производные классы для круглого и секторного стилей, чтобы визуализировать такие осцилляторы, как Relative Strength Index, Commodity Channel Index и Money Flow Index. Одиночные или комбинированные варианты отображения выбираются через перечисление, что дает гибкость при анализе импульса рынка по нескольким индикаторам. Круглый стиль сохраняет корпус в виде заполненных окружностей, а секторный стиль улучшает визуальную часть за счет секторов на основе дуг, скругляющих дуг, соединительных линий и полигонов для неполных циферблатов. Такая конструкция адаптируется к диапазонам углов и поддерживает относительное позиционирование, чтобы выравнивать несколько шкал по горизонтали на графике. Идея появилась из того, что иногда может понадобиться лишь небольшой участок шкалы для вывода информации. Поэтому мы решили разделить полную круговую шкалу на половину и четверть, чтобы можно было выбрать вариант, подходящий под конкретный стиль; и в нашем случае мы условно реализуем все три варианта.

Чтобы этого добиться, мы планируем расширить базовый класс шкалы чисто виртуальными методами для расчета и отрисовки корпуса шкалы, что позволит переопределять их в производных классах для логики, специфичной для конкретного стиля. Мы добавим перечисление для выбора шкалы, чтобы условно инициализировать и позиционировать экземпляры для Relative Strength Index (круглая шкала), Commodity Channel Index (секторная шкала) и Money Flow Index (секторная шкала), интегрируя их хендлы и буферы для копирования данных. Они нужны нам для копирования данных, которые затем визуализируются, но в вашем случае можно использовать что угодно: прибыль, динамику индикатора, прогресс или даже показатели счета, не ограничиваясь данными других индикаторов. Архитектура разделяет слои шкалы (с улучшенным заполнением отметок для нулевых позиций) и стрелки (с настраиваемыми множителями хвоста), обеспечивая эффективную перерисовку и относительную привязку на основе предыдущих шкал. Ниже кратко показана визуальная схема наших целей.

ОБЗОР АРХИТЕКТУРЫ ШКАЛ


Автор: Allan Munene Mutiiria