Dodawanie celów
Cele dodaje się do obiektu portfela za pomocą funkcji add.objective(). Każdy dodany cel jest osobnym obiektem i jest przechowywany w slocie objectives w obiekcie specyfikacji portfela. Dzięki temu cele są modułowe – można je łatwo dodawać, usuwać lub modyfikować. Argument name musi być prawidłową funkcją R. Dostępnych jest kilka funkcji z pakietu PerformanceAnalytics, ale jako funkcje celu można też używać własnych funkcji zdefiniowanych przez użytkownika. Wymagane argumenty funkcji add.objective() to: portfolio – portfel, do którego dodawany jest cel, type – typ celu, name – nazwa celu, oraz nazwane argumenty przekazywane przez ... do konstruktora danego typu celu. Argumenty funkcji celu są przekazywane jako nazwana lista do parametru arguments.
Podstawowe typy celów:
return: Ten typ celu dąży do maksymalizacji wartości celu.risk: Ten typ celu dąży do minimalizacji wartości celu.risk_budget: Ten typ celu dąży do minimalizacji koncentracji ryzyka lub penalizowania udziału w ryzyku przekraczającego minimalny lub maksymalny dopuszczalny procentowy udział w ryzyku.
Poza wymienionymi typami celów, PortfolioAnalytics obsługuje również typy oparte na użyteczności kwadratowej oraz koncentracji wag. Jeśli chcesz dowiedzieć się więcej o innych typach ograniczeń, zajrzyj do plików pomocy dla konstruktorów ograniczeń. Znajdziesz tam opis każdego typu ograniczenia wraz z przykładowym kodem.
To ćwiczenie jest częścią kursu
Analiza portfela – poziom średniozaawansowany w R
Instrukcje do ćwiczenia
- Dodaj cel zwrotu do obiektu specyfikacji portfela
port_specutworzonego w poprzednim ćwiczeniu. - Dodaj cel ryzyka minimalizujący odchylenie standardowe portfela do
port_spec. - Dodaj cel budżetu ryzyka do
port_spec, gdzie ryzyko jest zdefiniowane jako składnikowe odchylenie standardowe. Ustaw minimalny procentowy udział w ryzyku na 5%, a maksymalny na 10%. - Wyświetl obiekt
port_spec.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk budget objective
port_spec <- add.objective(portfolio = ___, type = ___, name = ___, min_prisk = ___, max_prisk = ___)
# Print the portfolio specification object