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

Опубликована статья Торговые инструменты MQL5 (Часть 33): Создание системы документации с расширенным форматированием для программ на языке MQL5:

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

Документация всегда находилась вне самого инструмента. Отдельный PDF-файл, внешняя ссылка, тема на форуме — всё это пользователю приходится искать самостоятельно, но чаще всего он этого так и не делает. Идея проста: разместить документацию с форматированием и интерактивными элементами непосредственно в самой программе, чтобы она была доступна при подключении программы к графику. Представьте себе руководство пользователя или руководство с расширенным форматированием — документ, который вы обычно открываете в программе для просмотра PDF-файлов или текстовом процессоре, но здесь он встроен непосредственно в MetaTrader 5 и связан с той самой программой, которую описывает.

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

Именно подход к отрисовке отличает эту систему от обычной панели из графических объектов. Вместо того чтобы размещать отдельные объекты-метки для каждого фрагмента текста, всё рисуется пиксель за пикселем на специальных поверхностях рисования. Чтобы получить гладкие, профессионально выглядящие края у скруглённых углов, кнопок и скруглённых ползунков полос прокрутки, мы используем суперсэмплинг: каждый элемент отрисовывается на внутренней поверхности с разрешением, в четыре раза превышающим разрешение отображения, а затем уменьшается до размера, в котором он будет виден на экране. Это позволяет устранить ступенчатые края, которые обычно возникают при растровой отрисовке в обычном масштабе.

Представьте себе эту систему как хорошо составленный торговый план. Это не меняет принцип работы инструмента, но позволяет использовать его более уверенно и правильно. Трейдер, который понимает, за что отвечает каждый параметр, для каких условий предназначена программа и чего от неё следует ожидать, с гораздо меньшей вероятностью будет использовать её неправильно. Встроенная документация — это не просто украшение, а средство управления рисками для разработчика. Мы создаём это поэтапно. Сначала мы определяем макет и тему. Далее мы реализуем рендеринг с суперсэмплингом. Затем мы добавляем абзацы и внутристрочную разметку, реализуем работу вкладок и прокрутки, встраиваем изображения и подключаем обработку взаимодействий с пользователем. Вот наглядное представление наших целей.

АРХИТЕКТУРА СИСТЕМЫ ДОКУМЕНТАЦИИ С РАСШИРЕННЫМ ФОРМАТИРОВАНИЕМ


Автор: Allan Munene Mutiiria