Максимизация функции квадратичной полезности
В видео о сложностях портфельной оптимизации вы узнали, как решать задачу оптимизации квадратичной полезности с помощью пакета quadprog. В этом упражнении вы решите аналогичную задачу с использованием пакета PortfolioAnalytics. Напомним, что формулировка квадратичной полезности включает два слагаемых: одно для средней доходности портфеля, другое — для дисперсии портфеля с параметром неприятия риска лямбда.
Это упражнение является частью курса
Промежуточный анализ портфеля в R
Инструкции к упражнению
- Создайте объект спецификации портфеля, используя названия активов из набора данных
index_returns, и назовите егоport_spec. - Добавьте в объект
port_specограничение полного инвестирования: сумма весов должна равняться 1. - Добавьте в объект
port_specограничение на длинные позиции: вес каждого актива должен находиться в диапазоне от 0 до 1. - Добавьте в объект
port_specцелевую функцию максимизации средней доходности портфеля. - Добавьте в объект
port_specцелевую функцию минимизации дисперсии портфеля. Параметр неприятия риска должен быть равен 10. - Запустите оптимизацию. Эта задача решается с помощью квадратичного программирования, поэтому укажите
optimize_method = "ROI".
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create the portfolio specification
port_spec <- portfolio.spec(assets = ___)
# 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 maximize portfolio mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add an objective to minimize portfolio variance
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___, risk_aversion = ___)
# Solve the optimization problem
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = "ROI")