Обсуждение статьи "Торговые инструменты на MQL5 (Часть 32): Перекрестие, лупа и режим измерения"

 

Опубликована статья Торговые инструменты на MQL5 (Часть 32): Перекрестие, лупа и режим измерения:

В этой статье мы расширяем палитру инструментов, добавляя прецизионное перекрестие для графиков MQL5: ретикул с делениями, линии на всю ширину и всю высоту графика с метками осей, а также круговую лупу для отображения увеличенных свечей. Режим измерения двойным щелчком добавляет якорные маркеры, диагональный соединитель и плавающую метку с количеством баров, расстоянием в пипсах и разницей цен. Детали реализации включают менеджер перекрестия, одиннадцать слоев холста (canvas), алгоритм Брезенхема для рисования линий и поведение с учётом темы оформления: элементы перекрестия скрываются при наведении на боковую или выдвижную панель.

Предыдущие части давали боковой панели возможность выбирать и размещать инструменты рисования, но как только вы перемещаете курсор на график, визуальная обратная связь о том, куда вы указываете, отсутствует. Стандартное перекрестие MetaTrader 5 существует, но его нельзя настроить, и оно не поддерживает увеличение. Мы восполним этот пробел в этой статье.

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

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

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

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

CROSSHAIR RETICLE AND MAGNIFIER LENS


Автор: Allan Munene Mutiiria

 
Диаграмма больше не реагирует на событие перетаскивания.
 
tdx_dahua@163.com #:
Диаграмма больше не реагирует на событие перетаскивания.
Здравствуйте. Спасибо за отзыв. Да, это предусмотренное поведение, призванное обеспечить плавную работу при взаимодействии с инструментами. Кнопки со стрелками продолжают работать, и вы можете использовать их для прокрутки графика. Мы добавим эту функцию, когда перейдем от EA к полноценному инструменту Utility и завершим окончательную настройку и оптимизацию. На данный момент это предусмотренное поведение. Вы можете отключить эту функцию на уровне слоя событий графика, но это может привести к конфликту между событиями основного графика и нашими объектами холста, если слой не будет правильно переключен. Спасибо.