Пользовательская целевая функция
Одна из ключевых особенностей PortfolioAnalytics состоит в том, что имя целевой функции должно быть допустимым именем функции R. Пакет разработан с акцентом на гибкость и модульность, и пользовательские целевые функции — наглядный тому пример. При определении пользовательской функции моментов рекомендуется придерживаться нескольких правил:
- Целевая функция должна возвращать единственное значение, которое оптимизатор будет минимизировать или максимизировать.
- Настоятельно рекомендуется использовать
Rдля доходностей активов иweightsдля весов портфеля.
Эти имена аргументов определяются автоматически и обрабатываются эффективным образом. Любые дополнительные аргументы целевой функции можно передать в виде именованного списка через параметр arguments функции add.objective().
Это упражнение является частью курса
Промежуточный анализ портфеля в R
Инструкции к упражнению
- Определите пользовательскую целевую функцию для вычисления годового стандартного отклонения портфеля.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Custom annualized portfolio standard deviation
pasd <- function(___, ___, sigma, scale = 12){
sqrt(as.numeric(t(___) %*% ___ %*% ___)) * sqrt(scale)
}