Zacznij terazZacznij za darmo

Rozwiąż prosty problem optymalizacji portfela

W tym ćwiczeniu nauczysz się rozwiązywać prosty problem optymalizacji portfela przy użyciu pakietu PortfolioAnalytics. Dowiesz się, jak utworzyć obiekt specyfikacji portfela, dodać ograniczenia i cele, a następnie rozwiązać problem optymalizacji. Zadanie polega na zbudowaniu portfela o minimalnej wariancji przy zachowaniu ograniczeń pełnej inwestycji oraz pozycji wyłącznie długich. Celem jest minimalizacja wariancji portfela. Problem obejmuje dwa ograniczenia: ograniczenie pełnej inwestycji wymaga, aby wagi sumowały się do 1, natomiast ograniczenie pozycji długich oznacza, że wszystkie wagi muszą być większe lub równe 0 (czyli krótkie pozycje są niedozwolone).

To ćwiczenie jest częścią kursu

Analiza portfela – poziom średniozaawansowany w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz obiekt specyfikacji portfela, używając nazw aktywów ze zbioru danych index_returns, i przypisz go do zmiennej port_spec.
  • Dodaj do obiektu port_spec ograniczenie pełnej inwestycji, tak aby wagi sumowały się do 1.
  • Dodaj do obiektu port_spec ograniczenie pozycji długich, tak aby waga każdego aktywa mieściła się w przedziale od 0 do 1.
  • Dodaj do obiektu port_spec cel minimalizacji odchylenia standardowego portfela.
  • Rozwiąż problem optymalizacji portfela, używając parametru optimize_method = "ROI". Wynik optymalizacji przypisz do obiektu o nazwie opt.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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 = "___")
Edytuj i uruchom kod