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

Вступление

Большие данные полностью меняют то, как работают фондовые рынки во всем мире и как инвесторы принимают свои инвестиционные решения. Машинное обучение - практика использования компьютерных алгоритмов для поиска закономерностей в огромных объемах данных - позволяет компьютерам делать точные прогнозы и принимать человеческие решения при загрузке данных, совершая сделки с высокой скоростью и частотой.

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

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

Цель

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

Основная цель - реализовать стратегию алгоритмической импульсной торговли с использованием машинного обучения.

Методология

Мы сформулировали проблему принятия решения о торговле акциями как задачу классификации с двумя разными классами: покупка и продажа. Мы стремимся определить наиболее эффективный классификатор на основе некоторых показателей. В качестве предикторов мы использовали некоторые технические индикаторы импульса и волатильности с временными периодами 7, 14 и 28 дней. Поскольку некоторые из этих показателей могут не иметь отношения к нашим данным. Мы использовали метод важности случайных лесных переменных, чтобы вычислить несущественные предикторы. В результате мы получили следующие соответствующие индикаторы: индекс относительной силы, индекс товарного канала, моментум (для периода времени = 7),% R Уильяма, конечный осциллятор, скорость изменения. Затем эти индикаторы стандартизируются для использования в качестве входных данных в различных моделях.

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

• Если на следующий день тренд восходящий, то решение - ПОКУПАТЬ.

• Если решение ПОКУПАТЬ уже существует, выберите ДЕРЖАТЬ.

• Если тренд следующего дня - нисходящий, то решение - ПРОДАВАТЬ.

• Если решение о продаже уже существует, выберите ДЕРЖАТЬ.

По результату, полученному с помощью этих правил, была рассчитана отдача от стратегии.

Набор данных

Мы взяли ежедневные исторические данные из Yahoo Finance. Мы выбрали 4 акции (JINDALSTEL.NS, JSWSTEEL.NS, HINDALCO.NS и TATASTEEL.NS) в секторе металлургии - Nifty Metal Index (^ CNXMETAL) Национальной фондовой биржи Nifty India. Временной период: с 01.01.2015 по 01.01.2020. Набор данных состоит из 6 переменных: дата, цена открытия дня, самая высокая цена дня, самая низкая цена дня, цена закрытия дня, объем торгов. Мы использовали 80% этих данных в качестве обучающей выборки и 20% в качестве тестовой.

Конструкция элементов

Мы начинаем с создания набора данных, который содержит предикторы, которые будут использоваться для составления прогнозов, и выходную переменную. Наш набор данных построен с использованием необработанных данных, состоящих из 5-летнего ряда цен для четырех различных акций. Отдельные данные об акциях и индексах состоят из даты, открытия, максимума, минимума, закрытия и объема. Используя эти данные, мы рассчитали наши индикаторы на основе различных технических индикаторов, таких как экспоненциальная скользящая средняя, ​​стохастический осциллятор% K и% D, индекс относительной силы (RSI), скорость изменения (ROC), моментум (MOM).

Ссылка на используемый набор данных:



Технические индикаторы

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

  1. Скользящие средние

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

2. Индекс относительной силы

Индекс относительной силы (RSI) - это индикатор импульса, используемый в техническом анализе, который измеряет величину недавних изменений цен для оценки условий перекупленности или перепроданности в цене акции или другого актива. RSI отображается в виде осциллятора (линейный график, который движется между двумя крайними точками) и может иметь значение от 0 до 100. Традиционная интерпретация и использование RSI таковы, что значения 70 или выше указывают на то, что ценная бумага становится перекупленной или переоцененной. и может быть подготовлен к развороту тренда или корректирующему откату цены. Значение RSI, равное 30 или ниже, указывает на состояние перепроданности или недооценки.

3. Стохастический осциллятор

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

Стохастический осциллятор ограничен диапазоном, что означает, что он всегда находится между 0 и 100. Это делает его полезным индикатором состояний перекупленности и перепроданности. Традиционно значения выше 80 считаются диапазоном перекупленности, а значения ниже 20 считаются перепроданными.

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

4. Импульсная сила цены

Импульс - это скорость или скорость изменения цен на акции, ценные бумаги или торгуемые инструменты. Моментум показывает скорость изменения движения цены за период времени, чтобы помочь инвесторам определить силу тренда. Акции, которые имеют тенденцию двигаться с силой импульса, называются акциями импульса. Инвесторы используют моментум для торговли акциями при восходящем тренде, открывая длинную позицию (или покупая акции) и открывая короткую позицию (или продавая акции) при нисходящем тренде. Другими словами, акции могут демонстрировать бычий импульс, означающий, что цена растет, или медвежий импульс, когда цена неуклонно падает.

Выбор функции

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

В нашей модели мы будем использовать метод фильтрации с использованием функции random.forest.importance. Функция random.forest.importance оценивает важность каждой характеристики в классификации результата, то есть переменной класса. Функция возвращает фрейм данных, содержащий имя каждого атрибута и значение важности на основе среднего снижения точности.

Алгоритмы машинного обучения

Мы использовали следующие модели и ансамбль этих моделей.

  1. K ближайшего соседа

K-Nearest Neighbor - один из простейших алгоритмов машинного обучения, основанный на технике контролируемого обучения. Алгоритм K-NN предполагает сходство между новым случаем / данными и доступными случаями и помещает новый случай в категорию, которая наиболее похожа на доступные категории.

2. Дерево решений

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

3. Гауссовский наивный байесовский

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

4. Машина опорных векторов

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

5. Случайный лес

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

Модель Точность

  • K Ближайший сосед - 95%
  • Дерево решений - 96%
  • Случайный лес - 98%
  • Машина опорных векторов - 93%
  • Гауссовский наивный Байес - 86%

Прогноз

Полученные результаты

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

Заключение

Основываясь на доходности нашей стратегии, мы не так сильно отклоняемся от реальной рыночной доходности. Действительно, стратегия торговли на основе достигнутого импульса позволила нам хорошо предсказать, в каком направлении цены акций будут инвестировать / отказываться от инвестиций для получения прибыли. Однако, поскольку наша точность составляет не 100% (а более 98%), мы понесли относительно небольшие убытки по сравнению с фактическими доходами.

Вы можете найти дополнительную информацию об этой же стратегии по ссылке ниже: