Обсуждение статьи "Обучаем нейросети на осцилляторах без подглядывания в будущее"

 

Опубликована статья Обучаем нейросети на осцилляторах без подглядывания в будущее:

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

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

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

Следствием этого являются:

  • Завышенные и нереалистичные результаты на исторических данных (backtest). Модель показывает почти идеальную прибыльность, потому что она, по сути, "подсматривала в ответы" во время обучения.
  • Резкое падение производительности на Out-of-Sample (OOS) данных и в реальной торговле. Когда модель сталкивается с новыми данными, где будущее неизвестно, она не может найти тех идеальных закономерностей, к которым "привыкла", и ее предсказания становятся бесполезными.
  • Низкая робастность (устойчивость) модели. Стратегия оказывается чрезмерно подогнанной под историю (overfitting) и не способной адаптироваться к меняющейся рыночной волатильности и режимам.

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

Автор: Maxim Dmitrievsky

 

А рекламная картинка для статьи не вводит ли в заблуждение? На ней разметка явно не по правилам из текста/кода.

Зачем close_data передается в функцию calculate_labels_rsi? Не правильнее ли написать в ней цикл так:

    for i in range(len(rsi_data)):

?

[Удален]  
Stanislav Korotky #:

А рекламная картинка для статьи не вводит ли в заблуждение? На ней разметка явно не по правилам из текста/кода.

Зачем close_data передается в функцию calculate_labels_rsi? Не правильнее ли написать в ней цикл так:

?

"ИИ" всегда так рисует, видимо.

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

 
Stanislav Korotky #:

А рекламная картинка для статьи не вводит ли в заблуждение? На ней разметка явно не по правилам из текста/кода.

Зачем close_data передается в функцию calculate_labels_rsi? Не правильнее ли написать в ней цикл так:

?

Автор здесь не при чем
 
Rashid Umarov #:
Автор здесь не при чем
У меня нет претензий к автору. Но сути проблемы это не меняет. Вы, как выпускающий редактор, не находите здесь введение в заблуждение (с помощью некорректной картинки)?
 
Stanislav Korotky #:
У меня нет претензий к автору. Но сути проблемы это не меняет. Вы, как выпускающий редактор, не находите здесь введение в заблуждение (с помощью некорректной картинки)?

Как раз в  тему, смотри анонс

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


 
Rashid Umarov #:

Как раз в  тему, смотри анонс

Тут слова расходятся с логикой. На картинке приведены ошибочные, а не идеализированные метки.

Про случайные метки надо бы поподробнее. Никакой ML не будет работать со случайными метками. Тут видимо имелось в виду что-то другое, а не то, что метки ставятся куда попало.

[Удален]  
Stanislav Korotky #:

Тут слова расходятся с логикой. На картинке приведены ошибочные, а не идеализированные метки.

Про случайные метки надо бы поподробнее. Никакой ML не будет работать со случайными метками. Тут видимо имелось в виду что-то другое, а не то, что метки ставятся куда попало.

На новых данных идеализированные превратятся в ошибочные :) обсуждать можно бесконечно.

Случайные метки зависят от случайных ценовых изменений, которые были в будущем. Там в статье об этом написано.

Аналогичный вопрос к вам: что значит "никакой МЛ не будет работать со случайными метками"? Может быть вы хотели сказать что-то другое? :)
 
Maxim Dmitrievsky #:

На новых данных идеализированные превратятся в ошибочные :) обсуждать можно бесконечно.

Случайные метки зависят от случайных ценовых изменений, которые были в будущем. Там в статье об этом написано.

Аналогичный вопрос к вам: что значит "никакой МЛ не будет работать со случайными метками"? Может быть вы хотели сказать что-то другое? :)

В этом фрагменте формулировки слегка неоднозначные, но суть подхода ясна и из статьи. К статье у меня не было претензий.

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

Моя фраза про случайные метки - вроде бы и не моя, а общеизвестный факт из МЛ.