Личные проекты

Превосходя фондовый рынок

или пытаюсь.

Примечание от редакторов Data Science. Хотя мы разрешаем независимым авторам публиковать статьи в соответствии с нашими правилами и рекомендациями, мы не поддерживаем вклад каждого автора. Не стоит полагаться на работы автора без консультации с профессионалами. См. Подробности в наших Условиях для читателей.

Резюме

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

Вступление

Анализ рынка и интересен, и сложен, что можно увидеть по следующей ссылке [1]. Тем не менее, есть несколько работ, проводимых с машинным обучением, которые пытаются пролить свет на эту область.

В этой работе я создал приложение, состоящее из двух основных пунктов:

  1. Экран, на котором индекс фондового рынка может быть проанализирован в различных временных горизонтах. Здесь находится график свечей; график для анализа технических индикаторов [2]; линейный график, который показывает процент изменения цены между днями, а также прямоугольный график, представляющий этот последний график, чтобы понять это распределение.
  2. Экран, на котором можно выполнить анализ разработанной мной торговой стратегии (Strategyone). Эта стратегия разделена на две разные части: первая состоит из прогноза движений индекса фондового рынка с помощью машинного обучения, а вторая включает сравнение текущего прогнозирования векторов данных. и что произошло в прошлом. Выбранные временные горизонты колеблются от 7, 14, 21 до 28 дней.

Этот последний раздел подробно объясняется в разделах «Как победить рынок» и «Торговая стратегия».

Данные были получены через Alpha Vantage API [3], а список фондовых индексов - из Finnhub API [4].

Контекст

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

Точно так же, как индивидуальное изучение элемента системы может привести к другому поведению, когда он изучается внутри системы.

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

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

Как обыграть рынок

Чтобы использовать модель классификации для прогнозирования движений рынка, мне нужно было классифицировать данные. Эти категории прогнозов получили название Сильный бык - прогнозы, в которых рост цен является значительным; Бык, когда наблюдается рост цен; Сохранить, цена останется прежней; Медведь - снижение цены, Сильный медведь - значительное снижение цены [6].

Как выбираются категории индекса фондового рынка?

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

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

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

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

Только выполнив эти шаги, мы можем получить модель, которая может предсказывать «сильного быка» с точностью 40%.

Торговая стратегия

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

То есть, если прогноз «Бык», мы выполняем операцию с длинной позицией, и в результате получается «Сильный бык», наш прогноз будет считаться точным. Аналогичным образом, если мы прогнозируем «Сильный бык», а результат - «Бык», или когда прогноз - «Сильный медведь», мы выполняем движение короткой позиции и получаем результат «Медвежий» и наоборот.

Если ни один из вышеперечисленных случаев не состоится, операция будет считаться неудачной.

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

Как работает стратегия?

После того, как надежный масштабатор применяется ко всем регистрам, прогнозируется категория и фактическая категоризация, применяется PCA, чтобы уменьшить количество измерений до 4, сохраняя 95% изменчивости данных. Таким образом, у нас есть еще 4 переменных вместе с прогнозом, связанным с регистром и его реальной категорией. Как переменные можно узнать, когда что-то прогнозируется относительно реальной категории, поэтому мы упорядочиваем прогноз и категорию и вычисляем медианное значение, связанное с каждой кривой профиля, чтобы понять, как описать каждую один.

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

Все это будет ограничено данными за последние 6 месяцев относительно дня прогноза, чтобы избежать влияния старого состояния рынка на стратегию. Полученные результаты кратко изложены ниже:

Интерпретация этой таблицы заключается в том, что за последние 6 месяцев до прогноза «Сильный бык» и правильного определения категории переменные основных компонентов использовались в качестве медианы.

Следовательно, чтобы выполнить операцию, мы должны применить данные дня, в который мы делаем прогноз, надежный масштабатор и PCA,

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

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

Правильное угадывание еще не означает угадывание категории

В наших условиях правильным угадыванием будет также предсказание «Сильный бык» и получение в конечном итоге «Быка». С учетом этого уровень точности стратегии достигает 58%.

Заключение

Целью этой работы была разработка стратегии, которая позволяет начинающему инвестору получать прибыль с низким уровнем риска, не неся при этом полного убытка. Как я уже упоминал, эта стратегия обеспечивает уровень точности 58% в описанных условиях, но, с личным замечанием, это не стратегия, которая должна быть реализована автоматически, потому что предполагаемый уровень ошибки возрастает до 40%.

Однако интересно посмотреть, как достигается уровень точности более 50% в выполняемых операциях, следуя стратегии, основанной только на данных и с ограниченными и минимальными знаниями о фондовом рынке.

Весь код проекта можно прочитать на: GitHub / esan94 / bsm03

Следующие шаги

Возможные следующие шаги по улучшению могут включать:

  • Изменение модели данных.
  • Усовершенствование алгоритма классификации.
  • Дополнение к проекту дополнительных знаний о фондовом рынке.
  • Присвоение значения основным компонентам для применения косинусного подобия.

Ресурсы

Вы можете подписаться на меня в LinkedIn, GitHub или Medium.

Перевод выполнен Палома Санчес Нарваэс.