Оптимізація з періодичним ребалансуванням
Запуск оптимізації з періодичним ребалансуванням і аналіз позазразкових результатів бектесту — важливий крок, щоб краще зрозуміти та за потреби уточнити обмеження й цілі. optimize.portfolio.rebalancing() підтримує оптимізацію з періодичним ребалансуванням (бектестинг), щоб дослідити позазразкову ефективність. На додачу до аргументів для optimize.portfolio(), потрібно вказати частоту ребалансування через rebalance_on, training_period — кількість періодів тренувальних даних для початкової оптимізації, та rolling_window — кількість періодів для ширини вікна оптимізації. Якщо rolling_window встановлено як NULL, кожна оптимізація використовуватиме всі доступні дані на момент, коли вона запускається.
Щоб зменшити час обчислень у цій вправі, набір випадкових портфелів rp згенеровано з використанням 50 перестановок, а search_size — скільки портфелів тестувати — встановлено на 1000. Якщо ви справді оптимізуєте портфелі самостійно, імовірно, захочете протестувати більше портфелів (типове значення для search_size — 20 000)!
Ця вправа є частиною курсу
Середній рівень аналізу портфеля в R
Інструкції до вправи
- Запустіть оптимізацію з квартальним ребалансуванням. Встановіть період навчання і ковзне вікно на 60 періодів. Набір даних є помісячним, тож ми використовуємо 5 років історичних даних. Присвойте результат оптимізації змінній
opt_rebal. - Виведіть результати оптимізації.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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