Это руководство призвано помочь вам в процессе создания инструмента оптимизации портфеля с использованием Python. Мы будем получать исторические доходности журнала акций через библиотеку yfinance
и использовать такие методы, как оптимизация среднего отклонения или модель Блэка-Литтермана, чтобы найти оптимальное распределение активов. Мы будем использовать все тикеры SP100 из Википедии в качестве нашего набора данных.
К концу этого руководства вы будете иметь полное представление об оптимизации портфеля и о том, как реализовать ее в Python с помощью библиотеки cvxpy
. Мы рассмотрим следующие темы:
- Введение в оптимизацию портфеля
- Получение исторических данных о запасах с помощью
yfinance
- Предварительная обработка данных
- Оптимизация средней дисперсии
- Модель Блэка-Литтермана
- Создание инструмента оптимизации портфеля
1. Введение в оптимизацию портфеля
Оптимизация портфеля — это процесс выбора наилучшего распределения активов в портфеле для достижения желаемой цели. Целью может быть максимизация прибыли, минимизация риска или поиск баланса между ними. Цель состоит в том, чтобы найти оптимальное сочетание активов, которое максимизирует прибыль при минимальном риске.
Существует несколько методов оптимизации портфеля, но два популярных подхода — это оптимизация средней дисперсии и модель Блэка-Литтермана.
Оптимизация средней дисперсии основана на идее, что инвесторы не склонны к риску и стремятся максимизировать доход при заданном уровне риска. Он включает в себя расчет ожидаемой доходности и ковариационной матрицы активов в портфеле и поиск весов, которые минимизируют дисперсию портфеля.
Модель Блэка-Литтермана является расширением оптимизации средней дисперсии, которая включает мнения инвесторов и предположения о рыночном равновесии.
Это позволяет инвесторам высказать свое мнение об ожидаемой доходности активов и сочетает их с рыночными ожиданиями, чтобы найти…