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

Чинник 2: вибір ваг портфеля

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

У спеціальному випадку, коли всю вартість портфеля інвестують лише в два активи, потрібно визначити лише одну вагу, адже вага другого активу дорівнює одному мінус вага першого.

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

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

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

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

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

  • Створіть вектор grid за допомогою seq(), який починається з 0, закінчується 1, з кроком 0,01.
  • Ініціалізуйте порожній вектор vsharpe тієї самої довжини, що й grid. Поширений спосіб — створити вектор із NA за допомогою функції rep(). Ви заміните ці NA в циклі, який створите далі.
  • У циклі for ви обчислите коефіцієнт Шарпа для кожної можливої ваги з grid. Перша команда в циклі for вибирає i-ий елемент grid і зберігає його в об'єкті weight, який змінюється на кожній ітерації.
  • Ви хочете побачити, як змінюється дохідність портфеля зі зміною ваги. Створіть об'єкт preturns, який дорівнює сумі weight помножити на returns_equities та (1-weight) помножити на returns_bonds.
  • Далі замініть NA у vsharpe на річний коефіцієнт Шарпа (SharpeRatio.annualized()) для preturns.
  • Заповніть функцію побудови графіка, де на осі x відкладені можливі ваги (grid), а на осі y — коефіцієнти Шарпа.

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

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

# Create a grid
grid <- seq(from = ___, to = ___, by = ___)

# Initialize an empty vector for Sharpe ratios
vsharpe <- rep(NA, times = ___ )

# Create a for loop to calculate Sharpe ratios
for(i in 1:length(grid)) {
    weight <- ___[i]
    preturns <- ___ * ___ + (1 - ___) * ___
    vsharpe[i] <- SharpeRatio.annualized(___)
}

# Plot weights and Sharpe ratio
plot(___, ___, xlab = "Weights", ylab= "Ann. Sharpe ratio")
abline(v = grid[vsharpe == max(vsharpe)], lty = 3)
Редагувати та запускати код