При наивном переносе вычисления признаков сканирования трендов на MQL5 каждое окно-кандидат пересчитывается на каждом баре с общей вычислительной сложностью O(H·L). В статье представлен файл CTrendScanningFeatures.mqh, в котором для каждого горизонта поддерживаются три обновляемые суммы с обновлением за O(1) на бар; результаты проверены по эталонной реализации на Python. Индикатор предоставляет четыре каузальных буфера — window, slope, t_value, rsquared — на баре подтверждения и исправляет инверсию знака, присутствующую в исходном обратном режиме разметки.
В части 13 для afml.labeling.trend_scanning был создан интерфейс get_trend_scanning_features, предоставляющий только каузальные признаки: аргумент lookforward в нем удален, а не просто описан в документации, поскольку режим разметки по умолчанию небезопасно использовать при формировании матрицы признаков. В этой статье те же каузальные вычисления перенесены на MQL5 в виде CTrendScanningFeatures.mqh. Реализация с нуля, без опоры на используемый в Python прием разворота порядка данных, выявила дефект, унаследованный кодом на Python: trend_scanning_labels(lookforward=False) возвращает наклон и t-статистику с неверным знаком.
В разделах 4 и 5 описаны выявленная проблема и ее влияние на поставляемую обертку из части 13, а также приведены подтверждающие данные. Раздел 9 посвящен второй, отдельной проблеме, которая касается метода, а не кода: правило выбора среди окон-кандидатов не позволяет выбрать наиболее значимый тренд, а выдаваемую t-статистику нельзя интерпретировать путем сравнения с номинальным порогом t-распределения Стьюдента при работе с ценовыми данными. Оба утверждения подтверждаются с помощью моделирования, а не аргументации.
В остальной части статьи рассматриваются собственно инженерные решения, потребовавшиеся при переносе: инкрементальное обновление со сложностью O(1) для каждого горизонта вместо полного пересчета окна, используемого в части 13; упрощение маскирования по волатильности, вытекающее из значения по умолчанию одного из параметров самого модуля; а также индикатор для графика, предоставляющий доступ к четырем буферам каузальных признаков через тот же контракт iCustom, который используется во всей серии.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Опубликована статья Конструирование признаков для машинного обучения (Часть 14): Признаки на основе сканирования трендов в MQL5:
В части 13 для afml.labeling.trend_scanning был создан интерфейс get_trend_scanning_features, предоставляющий только каузальные признаки: аргумент lookforward в нем удален, а не просто описан в документации, поскольку режим разметки по умолчанию небезопасно использовать при формировании матрицы признаков. В этой статье те же каузальные вычисления перенесены на MQL5 в виде CTrendScanningFeatures.mqh. Реализация с нуля, без опоры на используемый в Python прием разворота порядка данных, выявила дефект, унаследованный кодом на Python: trend_scanning_labels(lookforward=False) возвращает наклон и t-статистику с неверным знаком.
В разделах 4 и 5 описаны выявленная проблема и ее влияние на поставляемую обертку из части 13, а также приведены подтверждающие данные. Раздел 9 посвящен второй, отдельной проблеме, которая касается метода, а не кода: правило выбора среди окон-кандидатов не позволяет выбрать наиболее значимый тренд, а выдаваемую t-статистику нельзя интерпретировать путем сравнения с номинальным порогом t-распределения Стьюдента при работе с ценовыми данными. Оба утверждения подтверждаются с помощью моделирования, а не аргументации.
В остальной части статьи рассматриваются собственно инженерные решения, потребовавшиеся при переносе: инкрементальное обновление со сложностью O(1) для каждого горизонта вместо полного пересчета окна, используемого в части 13; упрощение маскирования по волатильности, вытекающее из значения по умолчанию одного из параметров самого модуля; а также индикатор для графика, предоставляющий доступ к четырем буферам каузальных признаков через тот же контракт iCustom, который используется во всей серии.
Автор: Patrick Murimi Njoroge