Накладання обмежень на ваги
Інвестори часто мають обмеження на максимальні значення ваг портфеля. Такі обмеження можуть навіть бути перевагою. Перевага обмеження максимальної ваги полягає в тому, що підсумковий портфель буде менш зосередженим у певних активах. Проте є й недолік. Недолік у тому, що той самий цільовий дохід може стати недосяжним або буде отриманий ціною вищої волатильності.
Згадайте з попередньої вправи, що функція 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
___$__
___$__