Doprecyzowanie ograniczeń i celów
Zakładamy, że doprecyzowanie ograniczeń i/lub celów poprawi wyniki. Dodamy cel w postaci budżetu ryzyka, który określi minimalny i maksymalny procentowy udział każdego aktywa w ryzyku portfela. Rozbudujemy wcześniej utworzoną specyfikację portfela. To bardziej złożony problem optymalizacyjny, który wymaga globalnego solvera – jako metodę optymalizacji zastosujemy losowe portfele.
To ćwiczenie jest częścią kursu
Analiza portfela – poziom średniozaawansowany w R
Instrukcje do ćwiczenia
- Dodaj cel budżetu ryzyka
risk_budgetdoport_spec, przyjmując odchylenie standardowe jako miarę ryzyka. Ustaw minimalny procentowy udział w ryzyku na 5%, a maksymalny na 10%. - Uruchom optymalizację z kwartalnym rebalansowaniem. Ustaw okres treningowy i okno kroczące na 5 lat danych. Przypisz wyniki do zmiennej o nazwie
opt_rebal_rb. - Wykreśl wagi.
- Wykreśl procentowy udział każdego składnika w ryzyku portfela.
- Oblicz stopy zwrotu portfela za pomocą funkcji
Return.portfolio(). Przypisz wyniki do zmiennej o nazwiereturns_rb.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Add a risk budge objective
port_spec <- add.objective(portfolio = ___,
type = ___,
name = ___,
min_prisk = ___,
max_prisk = ___)
# Run the optimization
opt_rebal_rb <- optimize.portfolio.rebalancing(R = ___,
portfolio = ___,
optimize_method = "random", rp = rp,
trace = TRUE,
rebalance_on = ___,
training_period = ___,
rolling_window = ___)
# Chart the weights
# Chart the percentage contribution to risk
chart.RiskBudget(___, match.col = "StdDev", risk.type = ___)
# Compute the portfolio returns
returns_rb <- Return.portfolio(R = ___, weights = ___)
colnames(returns_rb) <- "risk_budget"