Giải một bài toán tối ưu hóa danh mục đơn giản
Bài tập đầu tiên này sẽ hướng dẫn bạn cách giải một bài toán tối ưu hóa danh mục đơn giản với PortfolioAnalytics. Bạn sẽ học cách tạo một đối tượng đặc tả danh mục, thêm ràng buộc và mục tiêu, rồi giải bài toán tối ưu hóa. Bài toán đặt ra là xây dựng danh mục có phương sai tối thiểu với các ràng buộc đầu tư toàn phần và chỉ nắm giữ vị thế mua (long only). Mục tiêu là tối thiểu hóa phương sai danh mục. Có hai ràng buộc: ràng buộc đầu tư toàn phần yêu cầu tổng trọng số bằng 1, và ràng buộc chỉ long yêu cầu mọi trọng số đều lớn hơn hoặc bằng 0 (tức là không được phép bán khống).
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
- Tạo một đối tượng đặc tả danh mục sử dụng tên tài sản từ bộ dữ liệu
index_returnsvà đặt tên đối tượng đặc tả làport_spec. - Thêm ràng buộc đầu tư toàn phần sao cho tổng trọng số bằng 1 vào đối tượng
port_spec. - Thêm ràng buộc chỉ long sao cho trọng số của một tài sản nằm trong khoảng từ 0 đến 1 vào đối tượng
port_spec. - Thêm một mục tiêu để tối thiểu hóa độ lệch chuẩn của danh mục vào đối tượng
port_spec. - Giải bài toán tối ưu hóa danh mục với
optimize_method = "ROI". Gán kết quả tối ưu hóa vào một đối tượng tênopt.
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.
# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add an objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")
# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")