Личные проекты
Превосходя фондовый рынок
или пытаюсь.
Примечание от редакторов Data Science. Хотя мы разрешаем независимым авторам публиковать статьи в соответствии с нашими правилами и рекомендациями, мы не поддерживаем вклад каждого автора. Не стоит полагаться на работы автора без консультации с профессионалами. См. Подробности в наших Условиях для читателей.
Резюме
Это личный проект, в котором я пытался разработать торговое приложение с использованием инструментов машинного обучения. Начав с моделирования данных вместе с категоризацией на основе методов распределения и машинного обучения, я разработал торговую стратегию для начинающих инвесторов, чтобы с помощью этого приложения получать прибыль с низким уровнем риска.
Вступление
Анализ рынка и интересен, и сложен, что можно увидеть по следующей ссылке [1]. Тем не менее, есть несколько работ, проводимых с машинным обучением, которые пытаются пролить свет на эту область.
В этой работе я создал приложение, состоящее из двух основных пунктов:
- Экран, на котором индекс фондового рынка может быть проанализирован в различных временных горизонтах. Здесь находится график свечей; график для анализа технических индикаторов [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
Следующие шаги
Возможные следующие шаги по улучшению могут включать:
- Изменение модели данных.
- Усовершенствование алгоритма классификации.
- Дополнение к проекту дополнительных знаний о фондовом рынке.
- Присвоение значения основным компонентам для применения косинусного подобия.
Ресурсы
- [1] https://en.wikipedia.org/wiki/Efficient-market_hypothesis
- [2] https://www.investopedia.com/technical-analysis-4689657
- [3] https://www.alphavantage.co/
- [4] https://finnhub.io/
- [5] https://kschool.com/
- [6] https://www.investopedia.com/insights/digging-deeper-bull-and-bear-markets/
Вы можете подписаться на меня в LinkedIn, GitHub или Medium.
Перевод выполнен Палома Санчес Нарваэс.