Розв'яжіть просту задачу оптимізації портфеля
У цій першій вправі ви навчитеся розв'язувати просту задачу оптимізації портфеля за допомогою PortfolioAnalytics. Ви дізнаєтеся, як створити об'єкт специфікації портфеля, додати обмеження та цілі й розв'язати задачу оптимізації. Потрібно сформувати портфель із мінімальною дисперсією за умови повної інвестованості та лише довгих позицій. Мета — мінімізувати дисперсію портфеля. Є два обмеження: обмеження повної інвестованості означає, що сума ваг має дорівнювати 1, а обмеження лише довгих позицій означає, що всі ваги мають бути більшими або рівними 0 (тобто короткі позиції заборонені).
Ця вправа є частиною курсу
Середній рівень аналізу портфеля в R
Інструкції до вправи
- Створіть об'єкт специфікації портфеля, використавши назви активів із набору даних
index_returns, і назвіть цей об'єктport_spec. - Додайте до об'єкта
port_specобмеження повної інвестованості так, щоб сума ваг дорівнювала 1. - Додайте до об'єкта
port_specобмеження лише довгих позицій так, щоб вага активу була в межах від 0 до 1. - Додайте до об'єкта
port_specціль мінімізувати стандартне відхилення портфеля. - Розв'яжіть задачу оптимізації портфеля, використавши
optimize_method = "ROI". Запишіть результати оптимізації в об'єктopt.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add an objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")
# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")