Построение Markowitz Model для российского рынка ценных бумаг. Пример в Excel 2010
Второе ограничение состоит в том, что сумма всех долей ценных бумаг должна составлять 1, это правило нормировки долей. Формула показывает это ограничение:
Так же доходность портфеля будет выглядеть как сумма доходностей отдельных акций с выбранными весовыми коэффициентами. Так как каждый инвестор пытается максимизировать получаемую доходность, то необходимо будет максимизировать эту целевую функцию. В итоге это будет выглядеть в виде формулы:
Помимо доходности инвестору необходимо так же учесть и риск, связанный с той или иной акцией.
Риск по Markowitz выражается в виде среднеквадратического отклонения δi каждой акции. Значение δр – это уровень приемлемого риска для инвестора. Помимо учета средне квадратического отклонения отдельных акций необходимо учесть корреляцию между доходностями акций – rij . Корреляция в нашем случае для Markowitz Model равняется нулю. В итоге риск всего портфеля представлен формулой:
Пример составления портфеля Markowitz для российского фондового рынка
Для примера возьмем акции 4-х российских компаний Газпром (GAZP), Дальсвязь(DLSV), Сургутнефтегаз (SNGS) и Роснефть (ROSN).
Построим на основе котировок оптимальный портфель. Для нахождения оптимального портфеля по Markowitz Model воспользуемся средствами Excel и компонентой Solver (Поиск решений).
– Для начала рассчитаем дневную доходность по каждой акции за один год.
Формула расчета дневной доходности (mj) представлена:
где: Рj – цена акции на конец текущего дня;
Рj-1 – цена акции за предыдущий день.
В итоге должна получится следующая таблица дневных доходностей каждой из акций:
Что бы рассчитать доходность для каждой акции необходимо найти среднюю доходность акции за выбранный период, в данном случае 1 год.
Cреднедневная доходность за весь период составила для GAZP = -0,02%, DLSV =0,28%, SNGS =0,05% и ROSN= 0,08%. Так как средняя доходность Газпрома отрицательная то эта акция не будет включена в портфель.
– Помимо доходности необходимо рассчитать риск этих акций, для этого рассчитаем среднеквадратическое отклонение дневных доходностей акций по формуле:
Для Дальсвязи (DLSV) δ1 =1,73% , Сургут нефтегаза (SNGS) δ2 = 1,98% и Роснефти (ROSN) δ3 = 2,05%.
– Составим уравнение для нахождения оптимального портфеля. Так же зададим допустимый максимальный уровень риска в 0,15%.
– Полученные данные занесем в таблицу для расчетов долей (xi) каждой акции в портфеле.
– Осталось решить полученное уравнение и рассчитать доли каждой акции, для этого воспользуемся встроенным в пакет Excel надстройки «Поиск решений».
В ячейке (D6) прописывается ограничение для портфеля:
После проделанной работы определятся доли в инвестиционном портфеле для каждой акции:
Расчет оптимального портфеля по Markowitz Model представлен на рисунке ниже.
Оптимальный портфель будет состоять из 85,38% акций Дальсвязи (DLSV), 3,66% акций Сургутнефтегаза (SNGS) и 10,96% акций Роснефти (ROSN). Доходность всего портфеля будет составлять 0,24% при общем установленном заранее риске портфеля в 0,15%.
[expert_bq id=»1570″]В ячейке Е5 получено минимальное значение целевой функции σ p 12,880, а в ячейки B4 C4 записаны значения x 1 0,551 и x 2 0,449 — доли ценных бумаг типа A и типа B, соответственно. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] В ячейке Е5 получено минимальное значение целевой функции σp = 12,880, а в ячейки B4:C4 записаны значения x1 = 0,551 и x2 = 0,449 — доли ценных бумаг типа A и типа B, соответственно. При этом заданные ограничения удовлетворяются полностью, эффективность портфеля составляет 8,9% (ячейка G8).Постановка задачи об оптимальном портфеле — Студопедия
Как и в предыдущем случае, оказывается, что лучший портфель не обязательно тот, что приносит наибольшее количество денег. Напротив, наилучший результат – это доходность в совокупности с приемлемым риском.
Оптимизация инвестиционного портфеля по методу Марковица
Пример стандартной реализации на Python оптимизации инвестиционного портфеля по методу Марковица. Есть много реализаций данного метода. В том числе и на Python. Реализовал еще раз (см. ссылка на GitHub).
Источники
Загрузка данных по котировкам
Берем несколько акций американского рынка за последние 3 месяца.
Курсы закрытия
В расчетах будем использовать дневные курсы закрытия
Графики курсов
Изменение курсов
Далее понадобятся относительные изменения к предыдущему дню.
Графики относительных изменений курсов
Средняя доходность
Средняя дневная доходность по каждой акции для расчета доходности портфеля.
Ковариация
Для расчета риска портфеля потребуется ковариационная матрица.
Случайный портфель
Будем генерить случайные портфели. В них сумма долей равна 1 (единице).
Доходность портфеля
Доходность портфеля считаем как сумму долей доходностей по каждой акции в портфеле.
Риск портфеля¶
Риск портфеля считаем через матричные произведения долей портфеля и матрицы ковариации.
Облако портфелей
Сгенерируем множество портфелей и выведем результат на график риск-доходность. Найдем параметры оптимального портфеля по минимальному риску и по максимальному коэффициенту Шарпа. Сравним с данными усредненного портфеля.
Выводы
Повторили классический метод расчета долей инвестиционного портфеля. Получили вполне конкретные результаты.
Оптимизация портфеля по методу Марковица предполагает сохранение параметров в будущем (корреляций между отдельными инструментами и уровня их доходности). Но это не гарантировано. В следующих работах предстоит это проверить.
Понятно, что положительного результата от обозначенной выше проверки ожидать не стоит. Но тогда можно поискать как доработать метод Марковица для получения более гарантированного дохода в будущем. Вот тема для еще одного исследования.
Как измерить эффективность инвестиционного портфеля: 3 практических подхода / Хабр
В надстройке «Поиск решений» необходимо ввести ссылку на ячейку, которую следует оптимизировать (общий риск портфеля, минимизируем), ввести какие параметры необходимо изменять (доли акций) и ограничения. Введем ограничения на весовые значения коэффициентов у акций: сумма долей акций должна быть равна 1 и сами доли должны иметь положительный знак.