НачатьНачать бесплатно

Оптимизация с периодической ребалансировкой

Запуск оптимизации с периодической ребалансировкой и анализ результатов бэктеста на внебазовых данных — важный шаг для более глубокого понимания ограничений и целевых функций, а при необходимости и их уточнения. Функция 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
Редактировать и запускать код