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

Опубликована статья Конструирование признаков для машинного обучения (Часть 6): Признаки микроструктуры рынка в MQL5:

В статье представлен CMicrostructureFeatures — класс на языке MQL5 для расчета признаков микроструктуры рынка на уровне баров: спреда Ролла и ценового воздействия по Роллу, спреда и сигмы Корвина — Шульца, лямбды Кайла, показателя неликвидности Амихуда (ILLIQ) и лямбды Хасбрука. Расчеты основываются исключительно на данных OHLCV с использованием скользящих окон. В статье разъясняется, как использование тикового объема MetaTrader 5 влияет на оценки лямбды; при этом оценки спреда остаются независимыми от объема. Скрипт проверяет размеры выходных данных и соблюдение базовых ограничений на их значения.

Реализация на Python, представленная в части 5, предполагает доступ к потоку реальных тиковых данных: отдельным сделкам с указанием цены, объема и временной метки. Для оценок лямбды объем со знаком рассчитывается по тиковому правилу, применяемому к отдельным тикам, а не к ценам закрытия баров. Функция CopyTickVolume() в MQL5 не предоставляет таких данных. Она возвращает количество изменений цены внутри бара, а не количество отдельных сделок. У брокера, который агрегирует поступающие заявки перед публикацией обновлений цен, одна крупная сделка может регистрироваться как один тик, а серия мелких сделок — как множество тиков. Связь между тиковым объемом и фактическим числом сделок зависит от брокера и не раскрывается.

Для оценок лямбды это имеет вполне конкретное значение. Лямбда Кайла и лямбда Хасбрука оцениваются с помощью регрессии изменений цены на объем со знаком, где объем со знаком — это произведение направления сделки на ее объем. В реализации на MQL5 на уровне баров направление сделки определяется по тиковому правилу по ценам закрытия баров (bt = +1, если closet > closet-1, −1, если closet < closet-1, и 0 в остальных случаях), а в качестве объема используется тиковый объем. И то, и другое — приблизительные оценки.

На практике это означает, что значения лямбды, полученные в реализации на MQL5, следует рассматривать как сигналы о смене рыночного режима, а не как количественные оценки ценового воздействия. Рост лямбды Кайла во время тренда по-прежнему указывает на увеличение ценового воздействия на единицу потока заявок, даже если абсолютные значения у разных брокеров несопоставимы. Спред Ролла и спред Корвина — Шульца вообще не используют объем; их значения не зависят от брокера и напрямую сопоставимы с результатами, полученными в Python.


Автор: Patrick Murimi Njoroge