Задача 1. Формирование оптимального портфеля ценных бумаг по модели Марковица


Что такое теория Марковица

Автор теории формировал портфели с точки зрения математических расчётов, используя квадратическую оптимизацию, сопоставленную с ограничениями линейного типа. Марковиц выстраивал вероятное портфельное пространство с учётом группы факторов:

  • класс активов;
  • вектор ожидаемой средней доходности активов;
  • матрица ковариаций.

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

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

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

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

Построение эффективной границы Марковица с Python

Дата публикации Oct 11, 2018

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

Как и в предыдущей статье, нам нужно будет загрузить наши данные. Я буду использовать четыре простых файла с двумя столбцами — дату и цену закрытия. Вы можете использовать свои собственные данные или найти что-то в Quandl, что очень хорошо для этой цели. У нас есть 4 компании — Amazon, IBM, Cisco и Apple. Каждый файл загружается какAMZN,IBM,сига такжеAAPLсоответственно. ГлаваAAPLнапечатано ниже.

Мы хотим объединить все цены в одном кадре данныхакциитак вот способ сделать это.

Одна из вещей, которую нам нужно сделать с этим фреймом данных, — это нормализация данных. Я собираюсь использовать логарифмические возвраты, так как это более удобно и заботится о нормализации для остальной части проекта. Преобразовать все в логарифмическую доходность просто. Думайте об этом как о журнале арифметического ежедневного дохода (который получается путем деления цены в день n на цену в день n-1).

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

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

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

У нас есть все, что нам нужно, чтобы построить график, который сравнивает все комбинации с точки зрения волатильности (или риска) и доходности, окрашенные коэффициентом Шарпа. Красная точка получена из предыдущего расчета выше и представляет доходность и волатильность для моделирования с максимальным коэффициентом Шарпа.

Мы уже можем видеть форму маркера на графике, который описывает эффективную границу, которую мы будем строить позже. Чтобы попасть туда, нам нужно определить еще несколько функций. Первая функцияget_ret_vol_srвернет массив с:возвращение,летучестьа такжекоэффициент Шарпаот любого заданного веса.

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

Третья функцияcheck_sumпроверит сумму весов, которая должна быть 1. Она вернет 0 (ноль), если сумма равна 1.

Двигаясь дальше, нам нужно будет создать переменную, включающую наши ограничения, такие какcheck_sum, Мы также определим исходное предположение и конкретные границы, чтобы минимизация была более быстрой и эффективной. Наше первоначальное предположение будет 25% для каждой акции (или 0,25), а границы будут кортежем (0,1) для каждой акции, поскольку вес может варьироваться от 0 до 1.

Введите функцию минимизации. Я выбрал метод «SLSQP», потому что он используется для решения большинства общих проблем минимизации. Если вам интересно, это означает последовательное программирование наименьших квадратов. Обязательно передайте начальный метод, границы и ограничения с переменными, определенными выше. Если мы напечатаем переменную, она будет выглядеть так:

Мы хотим ключИксиз словаря, который представляет собой массив с весами портфеля, который имеет максимальное отношение Шарпа. Если мы используем нашу функциюget_ret_vol_srмы получаем доходность, волатильность и коэффициент Шарпа:

Таким образом, мы получили лучшее соотношение Шарпа, чем при моделировании, которое мы делали раньше (1.0307 в отличие от предыдущего 1.0287).

Теперь мы готовы проверить все оптимальные портфели, что является нашей эффективной границей. Эффективной границей является набор портфелей, который дает нам максимальную ожидаемую доходность для любого данного уровня риска. Или с другой точки зрения, минимальная сумма риска для ожидаемой доходности. Чтобы проследить эту строку, мы можем определить переменнуюfrontier_y, Возвращаясь к графику выше, мы видим, что максимальная доходность не намного выше 0,3, поэтомуfrontier_yбудет определяться от 0 до 0,3.

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

А теперь последний кусок кода, который поможет нам получить нашиИксзначения для эффективной границы. Мы используем тот же код, что и выше, с некоторыми изменениями в ограничениях дляцикл в основном проходит через все возможные значения в нашем ранее определенномfrontier_yи получение минимального результата (который является ключевым’весело’) волатильности (нашИксось на графике).

Наконец, мы можем построить реальную эффективную границу, передав переменныеfrontier_xа такжеfrontier_y,

Эффективная граница Марковица, нанесенная на карту в красном цвете

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

Не стесняйтесь задавать любые вопросы или оставить сообщение ниже! Удачного кодирования!

Оригинальная статья

Минусы методики

Теория Марковица имеет ряд недостатков, выражающихся в следующем:

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

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

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

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

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

Математическая формулировка и решение задач

Портфель Марковица минимального риска

Задача оптимизации портфеля активов с вектором средней доходности r {\displaystyle r} ковариационной матрицей V {\displaystyle V} может быть сформулирована следующим образом

{ σ p 2 = d T V d → min d T r = r p d T e = 1 {\displaystyle {\begin{cases}\sigma _{p}^{2}=d^{T}Vd\rightarrow \min \\d^{T}r=r_{p}\\d^{T}e=1\\\end{cases}}}

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

A = ( r T e T ) V − 1 ( r , e ) = ( r T V − 1 r r T V − 1 e e T V − 1 r e T V − 1 e ) = ( a 11 a 12 a 21 a 22 ) {\displaystyle A={\begin{pmatrix}r^{T}\\e^{T}\\\end{pmatrix}}V^{-1}(r,e)={\begin{pmatrix}r^{T}V^{-1}r&r^{T}V^{-1}e\\e^{T}V^{-1}r&e^{T}V^{-1}e\\\end{pmatrix}}={\begin{pmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\\\end{pmatrix}}}

то решение задачи имеет вид

d ∗ = V − 1 ( r , e ) A − 1 ( r p 1 ) {\displaystyle d^{*}=V^{-1}(r,e)A^{-1}{\begin{pmatrix}r_{p}\\1\\\end{pmatrix}}}

Тогда зависимость дисперсии оптимизированного (эффективного) портфеля от требуемой доходности будет иметь вид

σ p 2 = ( r p , 1 ) A − 1 ( r p 1 ) = a 22 r p 2 − 2 a 12 r p + a 11 a 11 a 22 − a 12 2 = σ 0 2 ( r p − r 0 ) 2 r 0 ( r 1 − r 0 ) + σ 0 2 {\displaystyle \sigma _{p}^{2}=(r_{p},1)A^{-1}{\begin{pmatrix}r_{p}\\1\end{pmatrix}}={\frac {a_{22}r_{p}^{2}-2a_{12}r_{p}+a_{11}}{a_{11}a_{22}-a_{12}^{2}}}=\sigma _{0}^{2}{\frac {(r_{p}-r_{0})^{2}}{r_{0}(r_{1}-r_{0})}}+\sigma _{0}^{2}}

где σ 0 2 = 1 / a 22 , r 0 = a 12 / a 22 {\displaystyle \sigma _{0}^{2}=1/a_{22},r_{0}=a_{12}/a_{22}} — минимально возможная дисперсия доходности портфеля и соответствующая ему средняя доходность

r 1 = a 11 / a 12 {\displaystyle r_{1}=a_{11}/a_{12}} — доходность портфеля, с соотношением риск-доходность таким же как и портфель минимального риска (графически это единственная точка пересечения с параболой прямой, проходящей через начало координат и вершину параболы)

Портфель Тобина минимального риска

При наличии безрискового актива (с нулевой дисперсией доходности) с доходностью r f {\displaystyle r_{f}} формулировка задачи меняется

{ σ p 2 = d T V d → min d T ( r − r f e ) = r p − r f d f = 1 − d T e {\displaystyle {\begin{cases}\sigma _{p}^{2}=d^{T}Vd\rightarrow \min \\d^{T}(r-r_{f}e)=r_{p}-r_{f}\\d_{f}=1-d^{T}e\end{cases}}}

Решение этой задачи имеет вид

d ∗ = r p − r f ( r − r f e ) T V − 1 ( r − r f e ) V − 1 ( r − r f e ) {\displaystyle d^{*}={\frac {r_{p}-r_{f}}{(r-r_{f}e)^{T}V^{-1}(r-r_{f}e)}}V^{-1}(r-r_{f}e)}

Вектор структуры рискового портфеля (доли рисковых активов не во всем портфеле, а в общей стоимости рискового портфеля) будет равен

d ∗ ∗ = V − 1 ( r − r f e ) e T V − 1 ( r − r f e ) {\displaystyle d^{**}={\frac {V^{-1}(r-r_{f}e)}{e^{T}V^{-1}(r-r_{f}e)}}}

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

Средняя доходность рискового портфеля будет равна

r p ∗ ∗ = r T d ∗ ∗ = r T V − 1 ( r − r f e ) e T V − 1 ( r − r f e ) = a 11 − r f a 12 a 12 − r f a 22 = r 0 ( r 1 − r f ) r 0 − r f {\displaystyle r_{p}^{**}=r^{T}d^{**}={\frac {r^{T}V^{-1}(r-r_{f}e)}{e^{T}V^{-1}(r-r_{f}e)}}={\frac {a_{11}-r_{f}a_{12}}{a_{12}-r_{f}a_{22}}}={\frac {r_{0}(r_{1}-r_{f})}{r_{0}-r_{f}}}}

Стандартное отклонение оптимального (эффективного) портфеля зависит от требуемой доходности линейно, а именно следующим образом

σ p = r p − r f ( r − r f e ) T V − 1 ( r − r f e ) = σ 0 ( r p − r f ) ( r f − r 0 ) 2 − r 0 ( r 1 − r 0 ) {\displaystyle \sigma _{p}={\frac {r_{p}-r_{f}}{\sqrt {(r-r_{f}e)^{T}V^{-1}(r-r_{f}e)}}}={\frac {\sigma _{0}(r_{p}-r_{f})}{\sqrt {(r_{f}-r_{0})^{2}-r_{0}(r_{1}-r_{0})}}}}

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

β = V d ∗ σ p 2 = r − r f e r p − r f ⇒ r − r f e = β ( r p − r f ) {\displaystyle \beta ={\frac {Vd^{*}}{\sigma _{p}^{2}}}={\frac {r-r_{f}e}{r_{p}-r_{f}}}\Rightarrow r-r_{f}e=\beta (r_{p}-r_{f})}

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

r − r f = β ( r M − r f ) {\displaystyle r-r_{f}=\beta (r_{M}-r_{f})}

Это модель оценки финансовых активов — CAPM

Преимущества методики

Преимущества теории Марковица выражаются в следующем:

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

Теория рассчитана на то, что инвесторы будут обладать активами, а не спекулировать ими на бирже.

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

Портфель Марковица

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

Рекомендую прочитать также:

Слияние и поглощение компаний: как это работает

Что нужно знать инвестору о сделках M&A

Кривая эффективных портфелей

На этом графике кривая эффективных портфелей показывает максимально сбалансированные комбинации инструментов. Эту кривую отличает то, что приращение доходности больше, чем соответствующее ему приращение риска. Например, инструмент В имеет большую доходность по сравнению с инструментом Е, но и больший риск. В то же время, инструмент А при той же доходности, что и В, имеет ещё более высокое значение риска. Отсюда видно, что формирование портфеля на основе инструментов Е и В предпочтительнее, чем, например, Е и А или В и А. Кривая допустимых, но неэффективных портфелей отличается от кривой эффективных портфелей тем, что приращение риска, наоборот, больше приращения доходности. Тем не менее, и такие портфели можно рассматривать в качестве вариантов. Все портфели, находящиеся между указанными кривыми, попадают в множество допустимых портфелей. За пределами этого множества оказываются все остальные комбинации, образующие множество недопустимых портфелей. Они исключаются из рассмотрения.

Давайте теперь посмотрим, как можно пользоваться портфельной теорией Марковица на практике. В качестве примера можно взять сервис подбора портфеля на сайте «Сбербанк CIB» (sberbank-cib.ru/products/gm/it/instruments/optimal_portfolio.wbp). Это закрытое акционерное общество, созданное после покупки «Сбербанком» инвестиционной . Вначале нужно выбрать ценные бумаги:

Подбор ценных бумаг

При нажатии на кнопку «Построить кривую Марковица» получаем график риск-доходность:

Кривая Марковица

В данном случае кривая эффективных портфелей получается при доле бумаг АО «Уралкалий» в портфеле, равной 39,08%.

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями: