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

К концу этого руководства вы будете иметь полное представление об оптимизации портфеля и о том, как реализовать ее в Python с помощью библиотеки cvxpy. Мы рассмотрим следующие темы:

  1. Введение в оптимизацию портфеля
  2. Получение исторических данных о запасах с помощью yfinance
  3. Предварительная обработка данных
  4. Оптимизация средней дисперсии
  5. Модель Блэка-Литтермана
  6. Создание инструмента оптимизации портфеля

1. Введение в оптимизацию портфеля

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

Существует несколько методов оптимизации портфеля, но два популярных подхода — это оптимизация средней дисперсии и модель Блэка-Литтермана.

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

Модель Блэка-Литтермана является расширением оптимизации средней дисперсии, которая включает мнения инвесторов и предположения о рыночном равновесии.

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