Чинник 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)