Optimizare cu rebalansare periodică
Rularea optimizării cu rebalansare periodică și analiza rezultatelor out-of-sample ale backtestului reprezintă un pas important pentru a înțelege mai bine constrângerile și obiectivele definite și, dacă este cazul, pentru a le rafina. optimize.portfolio.rebalancing() suportă optimizarea cu rebalansare periodică (backtesting) pentru a examina performanța out-of-sample. Pe lângă argumentele specifice funcției optimize.portfolio(), trebuie specificată frecvența de rebalansare prin rebalance_on, perioada de antrenament prin training_period (numărul de perioade utilizate ca date de antrenament pentru optimizarea inițială) și fereastra glisantă prin rolling_window (numărul de perioade folosite pentru lățimea ferestrei de optimizare). Dacă rolling_window este setat la NULL, fiecare optimizare va folosi toate datele disponibile până la perioada respectivă.
Pentru a reduce timpul de calcul în acest exercițiu, setul de portofolii aleatorii rp este generat folosind 50 de permutări, iar search_size – numărul de portofolii testate – este setat la 1000. Dacă optimizezi portofolii în mod real, vei dori probabil să testezi mai multe portofolii (valoarea implicită pentru search_size este 20.000)!
Acest exercițiu face parte din cursul
Analiză intermediară a portofoliului în R
Instrucțiuni pentru exercițiu
- Rulează optimizarea cu rebalansare trimestrială. Setează perioada de antrenament și fereastra glisantă la 60 de perioade. Setul de date conține date lunare, deci folosim 5 ani de date istorice. Atribuie rezultatul optimizării unei variabile numite
opt_rebal. - Afișează rezultatele optimizării.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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