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

Введение. Мое увлечение машинным обучением (МО) зародилось во время моего проекта в колледже, где я исследовал его возможности и потенциальные области применения. Ограниченное знакомство с компьютерами в моем детстве сделало концепцию машин, имитирующих человеческий мозг, еще более интригующей. Однако в то время он оставался в основном в академических кругах. Перенесемся на 25 лет вперед, с достижениями в области вычислительной мощности и прорывами в исследованиях, я заново открыл для себя машинное обучение с практической точки зрения бизнеса.

Мое увлечение машинным обучением (МО) возродилось благодаря объединению возросших вычислительных возможностей и прорывных исследований. После того, как я заново открыл для себя потенциал машинного обучения с точки зрения практического бизнеса, я отправился в путешествие, чтобы исследовать его приложения за пределами академических кругов. В этой статье я поделюсь своим опытом работы с TensorFlow, мощным фреймворком, который позволил мне погрузиться в мир торговых моделей. Хотя я не являюсь экспертом по машинному обучению, я всегда сосредоточился на применении машинного обучения для решения реальных проблем.

Новое открытие машинного обучения: Достижения в области вычислительной мощности и прорывы в исследованиях возродили во мне интерес к машинному обучению как к потенциальному решению моей проблемы. Любопытство побудило меня поэкспериментировать с блокнотами Jupyter с открытым исходным кодом и базовыми регрессионными моделями. Несмотря на его простоту, я был поражен мощью ML, так как несколько строк кода дали многообещающие результаты. Попутно я изучил Python и глубже погрузился в эволюцию моделей ML при участии сообщества разработчиков открытого исходного кода.

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

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

Включение исторической последовательности и контекста. Изучение торговых моделей подчеркивало важность включения исторической последовательности и контекста в прогнозирование будущих ценовых движений. Заинтригованный этой концепцией, я продолжил исследования и решил построить модель LSTM (долговременная кратковременная память). Этот тип рекуррентной нейронной сети (RNN) превосходно фиксирует долгосрочные зависимости и закономерности в последовательных данных, что делает его подходящим для внутридневной торговли.

Преодоление проблем с помощью сети, основанной на внимании. Несмотря на первоначальное волнение, результаты модели LSTM не оправдали ожиданий. Более того, большинство экспериментов, которые я нашел в Интернете, были сосредоточены на долгосрочных прогнозах с использованием дневных данных OHLC, не подходящих для внутридневной торговли. Преисполненный решимости найти решение, я наткнулся на статью «Внимание — это все, что вам нужно», в которой подчеркивалась важность построения распознавания образов на основе внимания, аналогичного человеческому обучению. Этот подход требовал большого количества данных и значительных вычислительных ресурсов. К счастью, я открыл для себя рынки Alpaca, платформу, предоставляющую бесплатный доступ к необходимым внутридневным торговым данным. Однако выполнение вычислительных требований представляло собой проблему. Облачные решения были дорогими, что побудило меня инвестировать в мощный рабочий стол с хорошим графическим процессором, что позволило мне эффективно использовать TensorFlow.

Извлеченные уроки. За время своего путешествия я усвоил несколько жизненно важных уроков:

  1. Масштабирование имеет решающее значение: правильное масштабирование данных может значительно повлиять на производительность покрытия модели. Я экспериментировал с различными шаблонами масштабирования и методами нормализации, пока не нашел то, что сработало.
  2. Длина контекста и агрегирование: важно определить подходящую длину исторических данных для рассмотрения и то, как далеко в будущем следует прогнозировать. Поиск оптимальных способов агрегирования временного окна оказался решающим для получения более качественных прогнозов.
  3. Ансамблевые модели: полагаться на одну модель недостаточно. Создание ансамбля моделей, адаптированных к краткосрочным, среднесрочным и долгосрочным прогнозам, улучшило общую производительность.
  4. Универсальность тикеров. Удивительно, но модели, которые я разработал, продемонстрировали универсальность для разных тикеров. Начав с тикеров с большим дневным объемом торгов, таких как SPY, и расширив их до других, таких как AAPL, мы добились лучших результатов.
  5. Разработка функций: после определенного момента добавление слишком большого количества технических индикаторов не давало большой ценности и могло даже снизить производительность. Минимальные технические индикаторы вместе с данными OHLCV сыграли решающую роль в достижении оптимальной производительности.
  6. Индивидуальные окна технических индикаторов: индивидуальная настройка выбора и параметров технических индикаторов оказалась полезной. Эксперименты с различными окнами и комбинациями позволили делать более эффективные прогнозы.
  7. Роль торгового объема и ценового импульса. Чтобы упростить процесс обучения, я изначально решил не включать внешние факторы, такие как новостные настроения (хотя при необходимости их можно будет интегрировать позже). Вместо этого я сосредоточился на использовании ценной информации, полученной из объема торгов и импульса цены. Объем торгов служит индикатором участия в рынке, предоставляя ценную информацию об интенсивности давления покупателей или продавцов. Ценовой импульс, с другой стороны, проливает свет на скорость изменения цен, предлагая ценные подсказки о потенциальных тенденциях и закономерностях. Используя эти важные факторы, я смог повысить точность своих моделей и принимать более обоснованные торговые решения на основе имеющихся данных.

Следующие шаги: торговля на бумаге и не только. Чтобы получить всестороннее представление о том, как мои модели работают в режиме реального времени, и определить эффективные торговые модели, следующим логическим шагом было реализовать их в торговле на бумаге. Это позволило мне проверить эффективность моделей и внести необходимые коррективы в зависимости от реальных рыночных условий. Следите за моей предстоящей статьей, в которой я поделюсь своим опытом и идеями на этом этапе, включая итерации, необходимые для разработки набора моделей, которые постоянно совершенствуются с течением времени, приближаясь к моей цели по достижению точности более 80% в реальной торговле ( а не только тестирование). Вы можете увидеть модели в действии на www.berbul.com/live.

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