Обсуждение статьи "Альтернатива временным барам (Часть 3): Индикатор в подокне для отображения альтернативных баров в MQL5"

Опубликована статья Альтернатива временным барам (Часть 3): Индикатор в подокне для отображения альтернативных баров в MQL5:

AlternativeBarsViewer — индикатор в подокне, отрисовывающий все десять типов альтернативных баров как свечи с цветовой маркировкой. Он использует ту же иерархию CBarConstructor, что и BarBuilderEA, обеспечивая идентичность баров. Он поддерживает три источника данных (реальные тики, синтетические тики на основе OHLC или CSV-файл советника) и два режима отображения (TIME и INDEX), между которыми можно переключаться во время работы. Вырожденные бары выделяются, а сводная информация о них выводится на компактной панели, что позволяет выполнять калибровку в реальном времени, не выходя из терминала.

В двух предыдущих статьях серии были построены все десять типов альтернативных баров, определенных в главе 1 книги Лопеса де Прадо "Advances in Financial Machine Learning": стандартные бары (временные, тиковые, объемные, долларовые) — в первой части, а бары серий — во второй. Обе статьи завершались на одном этапе: бары записывались в CSV-файл, но просмотреть их в терминале было нельзя.

Естественным решением будет открыть CSV-файл в Python и построить график на его основе. Это работает для небольших объемов истории. При объемах альтернативных баров, накапливающихся во время работы в реальном времени, — несколько тысяч долларовых баров за активную сессию, десятки тысяч тиковых баров за неделю, — и matplotlib, и Plotly достигают ограничений отрисовки. Браузер или область отрисовки графика теряет производительность еще до полной отрисовки данных. Переключение между платформами во время прогонов по параметрам оказывается настолько медленным, что нарушает цикл обратной связи. К моменту отрисовки графика советник уже сгенерировал очередную партию баров.

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

В этой статье реализован AlternativeBarsViewer — пользовательский индикатор, который отрисовывает десять типов альтернативных баров в виде свечей с цветовой маркировкой в отдельном подокне. В данной реализации повторно используется точно та же иерархия CBarConstructor, что и в BarBuilderEA, поэтому свечи в подокне гарантированно совпадают с результатами советника и реализации на Python. Он поддерживает три источника данных: реальные тики (CopyTicksRange), синтетические тики на основе OHLC графика и CSV-файл, экспортированный советником. Кроме того, в нем предусмотрены два режима отображения, между которыми можно переключаться во время работы с помощью кнопки или горячей клавиши.


Автор: Patrick Murimi Njoroge