Optimering med periodisk ombalansering
Att köra optimeringen med periodisk ombalansering och analysera resultaten utanför urvalsperioden är ett viktigt steg för att bättre förstå och eventuellt förfina begränsningar och målsättningar. optimize.portfolio.rebalancing() stöder optimering med periodisk ombalansering (backtestning) för att undersöka prestanda utanför urvalsperioden. Utöver argumenten för optimize.portfolio() måste en ombalanseringsfrekvens anges med rebalance_on, training_period för att ange antalet perioder som används som träningsdata för den initiala optimeringen, samt rolling_window för att ange fönsterbredden i antal perioder. Om rolling_window sätts till NULL används alla tillgängliga data vid varje tidpunkt då optimeringen körs.
För att minska beräkningstiden i den här övningen genereras slumpmässiga portföljer, rp, med 50 permutationer, och search_size – det vill säga antalet portföljer som testas – är satt till 1 000. Om du optimerar portföljer på egen hand vill du förmodligen testa fler portföljer (standardvärdet för search_size är 20 000)!
Den här övningen är en del av kursen
Portföljanalys på avancerad nivå i R
Övningsinstruktioner
- Kör optimeringen med kvartalsvisa ombalanseringar. Sätt träningsperioden och det rullande fönstret till 60 perioder. Datamängden innehåller månadsdata, så vi använder 5 års historiska data. Tilldela optimeringsresultatet till en variabel med namnet
opt_rebal. - Skriv ut resultaten från optimeringen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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