1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Giới thiệu Phân tích Danh mục đầu tư bằng R

Connected

Bài tập

Tính đường biên hiệu quả bằng một lưới các mức lợi suất mục tiêu

Như bạn đã thấy, một cách tiếp cận để tính đường biên hiệu quả là trước hết xác định một lưới các mức lợi suất mục tiêu, rồi với mỗi mức đó, tìm danh mục có lợi suất kỳ vọng bằng lợi suất mục tiêu với phương sai thấp nhất có thể.

Vậy lưới các mức lợi suất mục tiêu hợp lý là gì? Bạn sẽ đặt lợi suất mục tiêu tối đa bằng lợi suất trung bình tối đa của các cổ phiếu. Lý tưởng nhất, bạn sẽ đặt lợi suất mục tiêu tối thiểu bằng lợi suất của danh mục phương sai tối thiểu. Vì hiện bạn chưa biết lợi suất của danh mục phương sai tối thiểu, hãy tạo lưới bằng cách lấy mức tối thiểu của lợi suất trung bình từ tất cả các cổ phiếu.

Trong bài tập này, bạn sẽ dùng một vòng lặp for để tính lưới các giá trị trung bình danh mục tiềm năng, độ lệch chuẩn, và trọng số.

Hướng dẫn

100 XP
  • Tính trung bình theo cột của returns (dùng colMeans()) và gọi là stockmu.
  • Tạo một dãy (seq()) gồm 50 phần tử, bắt đầu từ lãi suất phi rủi ro 1% và kết thúc ở giá trị lớn nhất của stockmu, gọi là grid.
  • Khởi tạo hai vector rỗng có cùng độ dài với grid bằng rep(), nơi bạn sẽ lưu trung bình và độ lệch chuẩn của danh mục. Gọi chúng là vpm và vpsd.
  • Khởi tạo một ma trận trống có 50 hàng và 30 cột. Gọi là mweights. Bạn có thể dùng hàm matrix() để tạo.
  • Tạo một vòng lặp for bắt đầu từ giá trị đầu tiên của grid và kết thúc ở giá trị cuối cùng. Vòng lặp for này sẽ tạo một danh mục tên opt dùng returns và đặt lợi suất mục tiêu bằng grid.
  • Mỗi lần lặp, vòng for sẽ điền vào các vector vpm ($pm), vpsd ($ps) với các giá trị tương ứng lấy từ opt.
  • Lưu các trọng số danh mục theo từng dòng vào mweights ($pw).