ПочатиПочніть безкоштовно

Мінімізація CVaR

У цій вправі ви потренуєтеся використовувати інструменти PyPortfolioOpt для мінімізації CVaR як цілі керування ризиком.

Ви імпортуєте модуль pypfopt.efficient_frontier і отримаєте клас EfficientCVaR, створивши його екземпляр на основі активів інвестбанків за період 2005–2010 років.

Потім ви скористаєтеся методом екземпляра min_cvar(), щоб знайти оптимальні ваги портфеля, які мінімізують CVaR.

Доходності активів портфеля містяться у векторі returns — у цій вправі також використовується словник names, щоб зіставити ваги портфеля з назвами банків.

Ця вправа є частиною курсу

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

Переглянути курс

Інструкції до вправи

  • Імпортуйте клас EfficientCVaR з pypfopt.efficient_frontier.
  • Створіть екземпляр класу EfficientCVaR ec, використовуючи returns; зверніть увагу, що expected_returns не потрібен, адже цільова функція відрізняється від оптимізації середнє–дисперсія.
  • Знайдіть і виведіть оптимальний портфель за допомогою методу .min_cvar() екземпляра ec.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Import the EfficientCVaR class
from pypfopt.____ import EfficientCVaR

# Create the efficient frontier for CVaR minimization
ec = ____(None, ____)

# Find the cVaR-minimizing portfolio weights at the default 95% confidence level
optimal_weights = ec.____()

# Map the values in optimal_weights to the bank names
optimal_weights = { names[i] : optimal_weights[i] for i in optimal_weights}

# Display the optimal weights
print(optimal_weights)
Редагувати та запускати код