В последние годы все чаще говорят о применении машинного обучения для финансового моделирования и прогнозирования. Но оправдана ли шумиха? Стоит ли тратить время и ресурсы на освоение машинного обучения?

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

Если вы в целом знакомы с машинным обучением, не стесняйтесь пропустить и прочитать третий раздел «Где его можно применить в финансах?»

Что такое машинное обучение?

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

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

С созданием простых в использовании библиотек с открытым исходным кодом теперь стало проще, чем когда-либо, создавать, обучать и развертывать модели без специального образования.

Нейронные сети

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

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

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

Сумма весов * их соответствующие входные данные

Затем это значение пропускается через «функцию активации» (например, tanh или сигмовидную).

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

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

Обучение сети

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

В процессе обучения вы запускаете набор данных по сети, чтобы сравнить его прогнозы с желаемыми результатами для каждой точки данных. Разница между выходным и целевым значением (ями) затем используется для обновления весов в сети посредством «обратного распространения».

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

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

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

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

Где это можно применить в финансах?

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

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

Для этого сценария машинное обучение может применяться в нескольких различных случаях.

  1. Распознавание образов по свечным данным для определения уровней значимости

2. Создание специализированных индикаторов для добавления к простой стратегии, основанной на правилах.

3. Последний слой обработки и агрегирования, позволяющий сделать прогноз на основе вашего набора индикаторов.

Машинное обучение также может применяться несколько более экзотическими способами для уточнения дополнительной информации:

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

Машинное обучение против традиционных методов

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

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

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

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

Заключение

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

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

Мэтью Твид

Технологии и услуги предлагаются AlpacaDB, Inc. Брокерские услуги предоставляет Alpaca Securities LLC (alpaca.markets), член FINRA / SIPC. ООО «Альпака Секьюритис» является 100-процентной дочерней компанией AlpacaDB, Inc.

Следите за Альпакой на Medium и @AlpacaHQ в Twitter.

Эта история опубликована в Automation Generation, издании Medium, созданном для разработчиков / производителей в сфере трейдинга и финансовых технологий.

Следите за Поколением автоматизации, чтобы читать самые свежие новости.