1. Nauka
  2. /
  3. Kursy
  4. /
  5. Analiza portfela – poziom średniozaawansowany w R

Connected

ćwiczenie

Optymalizacja jednookresowa

Do uruchamiania optymalizacji służą dwie funkcje: optimize.portfolio() i optimize.portfolio.rebalancing(). To ćwiczenie skupia się na optymalizacji jednookresowej, a kolejne wykorzysta optimize.portfolio.rebalancing() do optymalizacji z okresowym rebalansowaniem. Funkcja optimize.portfolio() obsługuje optymalizację jednookresową. Do kluczowych argumentów należą: R – stopy zwrotu aktywów, portfolio – obiekt specyfikacji portfela oraz optimize_method – metoda optymalizacji używana do rozwiązania problemu. W wielu przypadkach warto ustawić trace = TRUE, aby zapisywać dodatkowe informacje dla każdej iteracji lub próby optymalizacji.

Obsługiwane są następujące metody optymalizacji:

  • DEoptim: ewolucja różniczkowa
  • random: losowe portfele
  • GenSA: uogólnione symulowane wyżarzanie
  • pso: optymalizacja rojem cząstek
  • ROI: R Optimization Infrastructure – solwery programowania liniowego i kwadratowego

Wybór metody optymalizacji powinien zależeć od rodzaju rozwiązywanego problemu. Na przykład problem, który można sformułować jako programowanie kwadratowe, należy rozwiązać odpowiednim solwerem kwadratowym, natomiast problem nienukwypukły – globalnym solwerem, takim jak DEoptim.

W tym ćwiczeniu zdefiniujemy problem optymalizacji portfela w taki sposób, aby maksymalizować średnią stopę zwrotu i minimalizować odchylenie standardowe portfela z budżetem ryzyka opartym na odchyleniu standardowym – minimalny udział procentowy ryzyka wynosi 5%, a maksymalny 10% – przy ograniczeniach pełnego zainwestowania i zakazu krótkiej sprzedaży. Cel w postaci budżetu ryzyka wymaga globalnego solwera, dlatego problem rozwiążemy za pomocą losowych portfeli. Zbiór losowych portfeli rp jest generowany przy użyciu 500 permutacji.

Instrukcje

100 XP

Specyfikacja portfela została już utworzona i nosi nazwę port_spec. W twoim środowisku dostępne są również stopy zwrotu asset_returns.

  • Uruchom optymalizację jednookresową z parametrem trace ustawionym na TRUE, używając "random" jako metody optymalizacji. Przypisz wynik optymalizacji do zmiennej o nazwie opt.
  • Wyświetl wynik optymalizacji.