Tối ưu hóa với tái cân bằng theo chu kỳ
Chạy tối ưu hóa với tái cân bằng theo chu kỳ và phân tích kết quả kiểm định ngoài mẫu (out-of-sample) là bước quan trọng để hiểu rõ hơn và có thể tinh chỉnh các ràng buộc và mục tiêu. optimize.portfolio.rebalancing() hỗ trợ tối ưu hóa với tái cân bằng theo chu kỳ (backtesting) để kiểm tra hiệu quả ngoài mẫu. Bên cạnh các tham số của optimize.portfolio(), bạn phải chỉ định tần suất tái cân bằng bằng rebalance_on, training_period để xác định số kỳ dùng làm dữ liệu huấn luyện cho lần tối ưu ban đầu, và rolling_window để xác định số kỳ cho độ rộng cửa sổ tối ưu. Nếu rolling_window được đặt là NULL, mỗi lần tối ưu sẽ dùng toàn bộ dữ liệu sẵn có tại thời điểm thực hiện tối ưu.
Để giảm thời gian tính toán cho bài tập này, tập danh mục ngẫu nhiên rp được tạo với 50 hoán vị, và search_size (số danh mục cần kiểm tra) được đặt là 1000. Nếu bạn tự tối ưu danh mục trong thực tế, có lẽ bạn sẽ muốn kiểm tra nhiều danh mục hơn (giá trị mặc định của search_size là 20.000)!
Bài tập này là một phần của khóa học
Phân tích danh mục đầu tư nâng cao với R
Hướng dẫn bài tập
- Chạy tối ưu hóa với tái cân bằng hàng quý. Đặt training period và rolling window là 60 kỳ. Bộ dữ liệu là dữ liệu theo tháng nên chúng ta đang dùng 5 năm dữ liệu lịch sử. Gán đầu ra tối ưu hóa vào biến
opt_rebal. - In kết quả tối ưu hóa.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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