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
Instrukcje do ćwiczenia
- Utwórz obiekt specyfikacji portfela, używając nazw aktywów ze zbioru danych
index_returns, i przypisz go do zmiennejport_spec. - Dodaj do obiektu
port_specograniczenie pełnej inwestycji, tak aby wagi sumowały się do 1. - Dodaj do obiektu
port_specograniczenie pozycji długich, tak aby waga każdego aktywa mieściła się w przedziale od 0 do 1. - Dodaj do obiektu
port_speccel minimalizacji odchylenia standardowego portfela. - Rozwiąż problem optymalizacji portfela, używając parametru
optimize_method = "ROI". Wynik optymalizacji przypisz do obiektu o nazwieopt.
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 = "___")