Оптимизация инвестиционного портфеля по методу Марковица
Пожалуй это уже не первая статья по портфельной оптимизации. Но она может стать быстрой закладкой (справочником) когда необходимо быстро реализовать оптимизацию инвестиционного портфеля на Python.
Источники
Следующие источники позволят получить общее представление о портфельной оптимизации по методу Марковица.
Загрузка данных по котировкам
Используем данные с сервиса Yahoo.Finance
Берем несколько акций американского рынка за последние 3 месяца.
Курсы закрытия
В расчетах будем использовать дневные курсы закрытия
Графики курсов
Изменение курсов
Далее понадобятся относительные изменения к предыдущему дню.
Графики относительных изменений
Средняя доходность
Средняя дневная доходность по каждой акции для расчета доходности портфеля.
Ковариация
Для расчета риска портфеля потребуется ковариационная матрица.
Случайный портфель
Будем генерить случайные портфели. В них сумма долей равна 1 (единице).
Доходность портфеля
Доходность портфеля считаем как сумму долей доходностей по каждой акции в портфеле.
Риск портфеля
Риск портфеля считаем через матричные произведения долей портфеля и матрицы ковариации.
Облако портфелей
Сгенерируем множество портфелей и выведем результат на график риск-доходность. Найдем параметры оптимального портфеля по минимальному риску и по максимальному коэффициенту Шарпа. Сравним с данными усредненного портфеля.
Выведем данные найденных портфелей.
Выводы
Повторили классический метод расчета долей инвестиционного портфеля. Получили вполне конкретные результаты.
Оптимизация портфеля по методу Марковица предполагает сохранение параметров в будущем (корреляций между отдельными инструментами и уровня их доходности). Но это не гарантировано. В следующих работах предстоит это проверить.
Понятно, что положительного результата от обозначенной выше проверки ожидать не стоит. Но тогда можно поискать как доработать метод Марковица для получения более гарантированного дохода в будущем. Вот тема для еще одного исследования.