Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Dodaj cel zwrotu do obiektu specyfikacji portfela port_spec utworzonego 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

Edytuj i uruchom kod