Соавторы: Марина Гольдман, Nissieltb
В третьей и последней части этого исследования мы рассмотрим более продвинутый, основанный на тенденциях метод маркировки для нашего Проблема классификации временных рядов.

Мы стремимся создать стратегию свинговой торговли для криптовалюты Биткойн (BTC), которая работает лучше, чем стратегии «купи и держи» (HODL) и стратегии, основанные на случайном блуждании. Окончательная модель должна выдавать сигнал удержания/остановки в течение 12 часов.

Основная метрика, на которую мы обращаем внимание, — это окончательная окупаемость инвестиций (ROI) в наших данных проверки и тестирования. Модели также оценивались с помощью классических показателей классификации, например полноты и точности, в качестве методов дальнейшей настройки моделей-кандидатов. Например, мы стремимся не терять деньги, поэтому нам хотелось бы, чтобы прогнозы «выбывания» (класс 0) имели более высокую полноту. Модели прогнозирования временных рядов оценивались с помощью среднеквадратичной ошибки (RMSE).

Мы оценили производительность на 3 различных наборах проверок и тестов:

Разнообразный рынок (1 января 21–1 июля 21) — рынок содержит как медвежьи, так и бычьи периоды.

Медвежий рынок (15 марта 21–1 июля 21)

Бычий рынок (15 июля 21–1 ноября 21)

Набор тестов на выдерживание (1 ноября 21–15 февраля 22)

Если вы не читали часть 1, в которой мы пытались разработать торговую стратегию с помощью прогнозирования временных рядов, рекомендуем вам ознакомиться
Часть 1 — Прогноз временных рядов

Что касается части 2, где мы перевели проблему в классификацию временных рядов с наивной маркировкой, а затем собрали некоторые результаты ROI для базовых моделей — проверьте это
Часть 2 — Классификация с наивной маркировкой

Маркировка на основе тенденций

Мы протестировали другой метод маркировки, опираясь на следующую статью:

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7597331/pdf/entropy-22-01162.pdf

Мы смогли пометить периоды трендов на основе параметра чувствительности «w». Мы реализовали алгоритм маркировки с w=0,3. w — индекс колебаний, используемый для определения чувствительности к колебаниям цены. В нестабильных активах, таких как криптовалюта, он должен быть выше, чем в менее волатильных активах, таких как индексы фондового рынка. См. нашу маркировку по периодам:

Примечание. Выбор w был сделан таким же образом, как и выбор размера окна λ в части 2

Примечание относительно утечки данных. при маркировке мы учитываем прошлое и будущее, то есть маркировка во время t зависит от t+i, чтобы ограничить тенденции. Однако это вспомогательная фаза, которая не приводит к утечке в прогнозах, поскольку мы используем ее для исторических данных, и она используется только для фазы обучения — в идеальном случае было бы удерживать значение, когда метка равна 1, и оставаться в стороне, когда метка равна 0. .

Распространение этикеток:

Создать базовую модель случайного блуждания здесь сложно — маркировка может быть выполнена только тогда, когда есть изменение, равное w, что объясняет белую область на графике в конце периода.

Выбор модели

Чтобы найти лучшие модели, мы выполнили перекрестную проверку (CV) и рассмотрели результаты всех трех наборов проверки. XGBoost показал лучшие результаты по сравнению с SVM, LogisticRegression и ADABoost, поэтому мы решили настроить его гиперпараметры, сосредоточившись на n_estimators, min_child_weight, max_depth и scale_pos_weight.

Примечание относительно гиперпараметра scale_pos_weight класса XGBoostClassifier: он дает некоторый контроль над взвешиванием классов. Чтобы увеличить отзыв класса 0 (не удерживающий) даже за счет точности этого класса. Мы считаем, что ложное срабатывание — это наихудший сценарий, поскольку мы не хотим удерживать монету, пока ее цена падает. Кроме того, это помогает с несбалансированным набором данных, поскольку цена BTC резко выросла после вспышки COVID-19 (2020 год был почти полностью в восходящем тренде с w = 0,3). Лучшее значение, найденное для этого параметра, – 0,2 – получено с помощью перекрестной проверки.

То же, что и в предыдущей части — мы сравнили доходность трех проверочных наборов: разные, медвежьи и бычьи периоды.

XGEnsemble — мягкое голосование ансамбля состоит из 24 классификаторов XGBoost, различных перестановок нескольких гиперпараметров.

Обсуждение результатов проверки

Мы видим, что даже если мы не можем победить бычий рынок, мы теряем меньше в медвежьи периоды, и это позволяет нам опережать рынок в разные периоды (колебательные периоды). По таблице результатов — мы решили выбрать XG Ensemble.

Инвестирование с использованием этой модели в течение всего 2021 года принесло бы ROI в размере 134,5 % по сравнению с 59,8 % по стратегии "купи и держи".

Результаты набора тестов удержания

Теперь пришло время протестировать выбранную нами модель на нашем наборе задержек:

Наша торговая стратегия потеряла -1,76%, в то время как цена биткойна в тестовом периоде упала на -27,93%, хорошо.

Сводка

Обобщить -

  • мы рассмотрели 3 подхода МО для решения проблемы победы над стратегией «купи и держи»: прогнозирование временных рядов, классификация временных рядов с наивной маркировкой и классификация с маркировкой тренда. Последний, по-видимому, превосходит принцип «купи и держи» на более длительных и разнообразных условиях. Вероятно, он не превзойдет монотонный бычий рынок.
  • Наша модель отстает, как видно из приведенных выше графиков результатов — не ожидайте покупать по минимальной цене и продавать по максимальной, ожидайте, что вы будете двигаться по тренду.
  • Мы также не учитывали комиссию за торговлю, которая снизит рентабельность инвестиций.
  • Стоп-лосс также может быть добавлен в стратегию и может улучшить результаты.

Будущая работа

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

Этот проект является нашим последним проектом в группе Israel Tech Challenge — Data Science 21 октября.