Алгоритмическая торговля 101 - Урок 4: Управление портфелем и машинное обучение на Python

Мы возились с нашей платформой при подготовке к запуску (будьте готовы к интересным новостям на этом фронте!) И провели веб-семинар Криптовалюты 101 с Quantopian, но теперь мы вернулись. 💪

Прежде чем мы начнем… Вы увидите, что на нашем GitHub был размещен простой код арбитража между The Ocean и Binance в качестве ответа на наш последний урок. Как и в случае со всеми фрагментами кода, мы не рекомендуем торговать в реальном времени до понимания и адаптации стратегии к вашему конкретному варианту использования и устойчивости к риску.

Почему Python?

На протяжении всего курса мы в основном фокусировались на основных вызовах API в The Ocean. И хотя у нас пока нет собственных библиотек Python (это в нашей дорожной карте!), Наш код арбитража точно так же вызывает наш JavaScript API из Python. Просто следуйте той же логике, и если вы застряли, не стесняйтесь и смело задавайте нам вопросы через Telegram.

Итак, почему Python? Это язык, который сегодня используют многие алгоритмические трейдеры из-за его (относительной) простоты использования и хороших приложений, таких как iPython Notebook, для совместного использования аналитических материалов. Что наиболее важно, в нем также есть богатый набор библиотек для всех типов приложений для анализа данных и машинного обучения, таких как scipy, matplotlib, tenserflow, pandas, sklearn, numpy, theano, keras, nltk и scrapy. Без самостоятельного создания функций они позволяют легко визуализировать вашу модель и запускать различные тесты прямо из коробки. Кроме того, это лучший способ параметризации и сравнения моделей машинного обучения.

Управление портфелем 101

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

Управление портфелем означает не только то, какие типы активов, но также:

  • Какие типы стратегий
  • Какая часть моего состояния выделена каждому
  • Как часто я корректирую

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

Активная и пассивная («Покупай и держи») стратегии

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

Диверсификация

Как правило, не следует класть все яйца в одну корзину. Выбор активов, которые различаются по разным продуктам, может минимизировать риск убытков. Если вы правильно диверсифицировали, когда стоимость одного актива падает, другие в вашем портфеле поднимаются. Существуют все типы диверсификации - по географическим регионам, секторам экономики, типам акций и облигаций и т. Д. Такие меры могут быть довольно техническими, но вы можете подробнее узнать об измерении своего портфеля здесь (Измерение диверсификации портфеля - Кирхнер, Цункель).

Размещение капитала

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

Ребалансировка

Предположим, у вас самый лучший и наиболее диверсифицированный портфель, который только можно вообразить. Рынки движутся, цены меняются, и внезапно ваш портфель перестает быть оптимальным в соответствии с вашей стратегией - пора перебалансировать! Ребалансировка означает корректировку веса вашего портфеля и выходит за рамки конкретных целей распределения активов. Возможно, потребуется изменить стратегии, поскольку их прибыльность может со временем измениться. Кроме того, ваше собственное мышление риск-доходность также может отличаться, например, инвестирование в более рискованные активы в возрасте 30 лет и 70 лет. В конечном итоге вам нужно будет найти правильный баланс (каламбур) или золотую середину при корректировке распределения вашего портфеля. . Вы найдете хорошую пищу для размышлений об этих компромиссах в этой статье Vanguard (Лучшие практики балансировки портфеля - Jaconetti, Kinniry, Zilbering).

Товарность

Важным фактором является ликвидность и наличие акций в определенном продукте. Если определенные продукты имеют низкую ликвидность, их будет сложнее продать и купить в том объеме и по желаемой вами цене. Фактически, вы действительно можете сдвинуть рынок своей сделкой. А если другие покупают или продают в том же направлении, вам может оказаться нелегко выйти из своей позиции без больших потерь. Это невероятно важно, учитывая волатильность, а иногда и неликвидность криптовалютного рынка. Для любопытных вы можете применить некоторые показатели ликвидности здесь к своему портфелю (Измеряют ли показатели ликвидности ликвидность? - Гойенко, Холден, Трзцинк).

Введение в машинное обучение

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

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

Под контролем

Обучение с учителем - это самая распространенная и самая большая часть вселенной машинного обучения. Алгоритм построен так, что все независимые переменные регрессора x могут быть сопоставлены с зависимой переменной Y. Например, Y = f (x1, x2,… xn). Цель состоит в том, чтобы оптимизировать эту функцию отображения, чтобы мы могли получить наилучшие прогнозы для зависимой переменной Y. По сути, алгоритм повторяет прогнозы на обучающем наборе и сравнивает значения с истинно известными выходными значениями. Термин «под наблюдением» относится к тому факту, что мы обучаем алгоритму обучения, проверяя правильный ответ и обновляя модель по мере необходимости. В конце концов, модель перестает учиться, когда у нас появляется соответствующий уровень уверенности в успехе. Переменные в этом алгоритме могут быть либо проблемой классификации, где выходные переменные являются категориальной переменной, либо проблемой регрессии, где выходной переменной является количественное число.

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

Без присмотра

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

Кластеризация K-средних - это тип обучения без учителя, который используется, когда у вас есть немаркированные данные (т. Е. Данные без определенных категорий или групп). Цель этого алгоритма - найти группы в данных, количество групп которых представлено переменной K. Алгоритм работает итеративно, чтобы назначить каждую точку данных одной из K групп на основе предоставленных функций. Точки данных группируются на основе сходства функций.

Вы можете узнать больше о кластеризации K -средний здесь (Введение в кластеризацию K-средних - Trevino).

Полу-контролируемый

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

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

Задача № 4 - Управление портфелем

На этой неделе он простой! Создайте свой собственный портфель криптоактивов и объясните свое обоснование.

Бонус: Измерьте соотношение активов в вашем портфеле и изучите их ликвидность.

* Помните, любой, который участвует в Telegram или отправляет нам решение в любое время в ходе нашей серии 101 алгоритмической торговли, имеет право на получение части 5000 долларов США в криптовалютные призы.

__________________________

🤖 Ссылки на уроки 🤖
Программа и как победить
Урок 1: Анализ временных рядов
Урок 2 : Данные, разработка стратегии и возврат к среднему значению
Урок 3: Введение в стратегии арбитража
Урок 4: Управление портфелем и машинное обучение в Python
Урок 5: Больше машинного обучения

Не забудьте присоединиться к нашему Telegram, если у вас есть вопросы!

Следуйте за нами в Twitter на @TheOceanTrade или подпишитесь на нашу рассылку, чтобы оставаться в курсе.