Сучасна теорія портфеля

Кількісне управління ризиками в Python

Jamsheed Shorish

Computational Economist

Компроміс ризик–дохідність

  • Фактори ризику: джерела невизначеності, що впливають на дохідність
  • Інтуїтивно: більша невизначеність (вищий ризик) компенсується вищою дохідністю
  • Неможливо гарантувати дохідність: потрібна міра очікуваної дохідності
    • середня історична дохідність: наближення до очікуваної майбутньої
Кількісне управління ризиками в Python

Схильність інвестора до ризику

  • Опитування інвесторів: мінімальна дохідність для заданого рівня ризику?
  • Відповідь створює «точку даних» профілю ризику (ризик, дохідність)
  • Варіюємо рівень ризику => набір точок (ризик, дохідність)
  • Схильність до ризику інвестора: визначає кількісний зв'язок між ризиком і дохідністю
Кількісне управління ризиками в Python

Вибір ваг портфеля

  • Змінюйте ваги активів у фіксованому портфелі => отримайте набір пар (ризик, дохідність)
  • Зміна ваг = початок управління ризиком!
  • Мета: змінити ваги, щоб максимізувати очікувану дохідність за заданого рівня ризику
    • Або еквівалентно: мінімізувати ризик за заданого рівня очікуваної дохідності
  • Зміна ваг = коригування ризикової експозиції інвестора
Кількісне управління ризиками в Python

Сучасна теорія портфеля

  • Ефективний портфель: ваги, що дають найвищу очікувану дохідність за заданого ризику
  • Modern Portfolio Theory (MPT), 1952
    • H. M. Markowitz (Нобелівська премія, 1990)
  • Вектор ваг ефективного портфеля $w^\star$ розв'язує:

Рівняння оптимізації для пошуку ефективного портфеля

Кількісне управління ризиками в Python

Ефективна межа

  • Обчисліть багато ефективних портфелів для різних рівнів ризику
  • Ефективна межа: множина пар (ризик, дохідність), утворених ефективними портфелями
  • Бібліотека PyPortfolioOpt: інструменти оптимізації для MPT
    • Клас EfficientFrontier: генерує один оптимальний портфель за раз
    • Клас Constrained Line Algorithm (CLA): будує всю ефективну межу
      • Потрібна коваріаційна матриця дохідностей
      • Потрібний замінник очікуваних майбутніх дохідностей: середні історичні
Кількісне управління ризиками в Python

Портфель інвестбанку 2005–2010

  • Очікувані дохідності: історичні дані
  • Коваріаційна матриця: Covariance Shrinkage покращує оцінку
  • Об'єкт Constrained Line Algorithm CLA
  • Мінімально-дисперсійний портфель: cla.min_volatility()
  • Ефективна межа: cla.efficient_frontier()

 

expected_returns = mean_historical_return(prices)

efficient_cov = CovarianceShrinkage(prices).ledoit_wolf()
cla = CLA(expected_returns, efficient_cov)
minimum_variance = cla.min_volatility()
(ret, vol, weights) = cla.efficient_frontier()
Кількісне управління ризиками в Python

Візуалізація ефективної межі

  • Точкова діаграма пар (vol, ret)

Графік ефективної межі як серія пар (ризик, дохідність)

Кількісне управління ризиками в Python

Візуалізація ефективної межі

  • Точкова діаграма пар (vol, ret)
  • Мінімально-дисперсійний портфель: найменша волатильність серед усіх ефективних портфелів

Мінімально-дисперсійний портфель, виділений на графіку ефективної межі

Кількісне управління ризиками в Python

Візуалізація ефективної межі

  • Точкова діаграма пар (vol, ret)
  • Мінімально-дисперсійний портфель: найменша волатильність серед усіх ефективних портфелів
  • Зростає схильність до ризику: рух вздовж межі

Рух уздовж ефективної межі, показаний стрілкою в бік вищого ризику й вищої дохідності

Кількісне управління ризиками в Python

Давайте потренуємось!

Кількісне управління ризиками в Python

Preparing Video For Download...