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

Пошук середньо-дисперсійно ефективного портфеля

Середньо-дисперсійно ефективний портфель можна отримати як розв'язок задачі мінімізації дисперсії портфеля за обмеження, що очікувана дохідність портфеля дорівнює цільовій дохідності. Зручна функція R для цього — portfolio.optim() з пакета R tseries. Типова (default) реалізація знаходить ваги середньо-дисперсійно ефективного портфеля за обмеження, що дохідність портфеля дорівнює дохідності рівноважного (equally-weighted) портфеля. Єдиний потрібний аргумент — це місячні дані дохідностей компонентів портфеля, для яких необхідно визначити ваги.

Змінна returns, що містить місячні дохідності акцій з DJIA, уже завантажена в консоль.

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

Вступ до аналізу портфеля в R

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

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

  • Імпортуйте бібліотеку tseries.
  • Створіть середньо-дисперсійно ефективний портфель на основі місячних дохідностей, використовуючи типові налаштування portfolio.optim() з націлюванням на дохідність рівноважного портфеля, і запишіть результат у змінну opt.
  • Створіть вектор ваг із вашого оптимізованого портфеля. Ваги портфеля можна знайти в opt$pw. Назвіть його pf_weights.
  • Присвойте назви активам, використавши наданий код.
  • Виберіть оптимальні ваги з pf_weights, що є більшими або дорівнюють 1 %, і назвіть їх opt_weights.
  • Використайте barplot(), щоб візуалізувати розподіл opt_weights.
  • Виведіть очікувану дохідність портфеля (opt$pm) і волатильність (opt$ps) оптимізованого портфеля.

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

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

# Load tseries


# Create an optimized portfolio of returns
opt <- portfolio.optim(___)

# Create pf_weights
pf_weights <- ___$pw

# Assign asset names
names(pf_weights) <- colnames(returns)

# Select optimum weights opt_weights
opt_weights <- pf_weights[___ >= 0.01]

# Bar plot of opt_weights


# Print expected portfolio return and volatility
___$pm
___$ps
 
Редагувати та запускати код