Optymalizacja z okresowym rebalansowaniem
Uruchomienie optymalizacji z okresowym rebalansowaniem i analiza wyników out-of-sample backtestingu to ważny krok, który pomaga lepiej zrozumieć zdefiniowane ograniczenia i cele – a w razie potrzeby je doprecyzować. Funkcja optimize.portfolio.rebalancing() obsługuje optymalizację z okresowym rebalansowaniem (backtestingiem), umożliwiając ocenę wyników poza próbą. Oprócz argumentów znanych z optimize.portfolio(), należy podać: częstotliwość rebalansowania (rebalance_on), liczbę okresów używanych jako dane treningowe do pierwszej optymalizacji (training_period) oraz szerokość okna optymalizacji (rolling_window). Jeśli rolling_window ma wartość NULL, każda optymalizacja uwzględni wszystkie dane dostępne w danym momencie.
Aby skrócić czas obliczeń w tym ćwiczeniu, zbiór losowych portfeli rp jest generowany z użyciem 50 permutacji, a parametr search_size (liczba testowanych portfeli) wynosi 1000. W rzeczywistych zastosowaniach warto testować znacznie więcej portfeli – domyślna wartość search_size to 20 000!
To ćwiczenie jest częścią kursu
Analiza portfela – poziom średniozaawansowany w R
Instrukcje do ćwiczenia
- Uruchom optymalizację z kwartalnym rebalansowaniem. Ustaw okres treningowy i okno kroczące na 60 okresów. Zbiór danych zawiera dane miesięczne, więc korzystamy z 5 lat danych historycznych. Wynik optymalizacji zapisz do zmiennej o nazwie
opt_rebal. - Wyświetl wyniki optymalizacji.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Run the optimization backtest with quarterly rebalancing
opt_rebal <- optimize.portfolio.rebalancing(R = ___, portfolio = ___, optimize_method = ___, rp = rp, trace = TRUE, search_size = 1000, rebalance_on = ___, training_period = ___, rolling_window = ___)
# Print the output of the optimization backtest