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

Накладання обмежень на ваги

Інвестори часто мають обмеження на максимальні значення ваг портфеля. Такі обмеження можуть навіть бути перевагою. Перевага обмеження максимальної ваги полягає в тому, що підсумковий портфель буде менш зосередженим у певних активах. Проте є й недолік. Недолік у тому, що той самий цільовий дохід може стати недосяжним або буде отриманий ціною вищої волатильності.

Згадайте з попередньої вправи, що функція portfolio.optim() дає змогу встановлювати обмеження на ваги через аргумент reshigh. reshigh потребує вектор максимальних ваг для кожного активу.

У цій вправі ви створите три портфелі з різними обмеженнями на максимальні ваги. Для цієї вправи важливо знати вихідні дані функції portfolio.optim(). Ця функція створює список із чотирьох компонентів: (i) $pw: ваги портфеля, (ii) $px: доходності всього портфеля, (iii) $pm: очікувана доходність портфеля, (iv) $ps: стандартне відхилення доходностей портфеля.

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

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

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

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

  • Створіть три вектори максимальних ваг для кожного активу (стовпця) в returns, використовуючи функцію rep(). Перший вектор міститиме максимальні ваги 100%, другий — 10%, третій — 5%. Назвіть їх відповідно max_weights1, max_weights2, max_weights3.
  • Створіть оптимальний портфель із максимальними вагами 100% і назвіть його opt1.
  • Створіть оптимальний портфель із максимальними вагами 10% і назвіть його opt2.
  • Створіть оптимальний портфель із максимальними вагами 5% і назвіть його opt3.
  • Порахуйте, скільки активів мають вагу більше ніж 1% для кожного портфеля. Доступ до ваг отримуйте, додаючи $pw після назви портфеля.
  • Виведіть волатильності (стандартні відхилення $ps) трьох створених вами портфелів.

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

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

# Create vectors of maximum weights
max_weights1 <- rep(1, ncol(returns))
max_weights2 <- ___
max_weights3 <- ___

# Create an optimum portfolio with max weights of 100%
opt1 <- portfolio.optim(___, reshigh = ___)

# Create an optimum portfolio with max weights of 10%


# Create an optimum portfolio with max weights of 5%


# Calculate how many assets have a weight that is greater than 1% for each portfolio
sum(opt1$pw > .01)
sum(___$pw > .01)
sum(___$pw > .01)

# Print portfolio volatilites 
opt1$ps
___$__
___$__

Редагувати та запускати код