Lý thuyết danh mục hiện đại

Quản trị Rủi ro Định lượng với Python

Jamsheed Shorish

Computational Economist

Đánh đổi rủi ro - lợi nhuận

  • Yếu tố rủi ro: nguồn bất định ảnh hưởng lợi nhuận
  • Trực giác: bất định cao hơn (rủi ro hơn) được bù bằng lợi nhuận cao hơn
  • Không thể đảm bảo lợi nhuận: cần thước đo lợi nhuận kỳ vọng
    • lợi nhuận lịch sử bình quân: đại diện cho lợi nhuận kỳ vọng tương lai
Quản trị Rủi ro Định lượng với Python

Khẩu vị rủi ro của nhà đầu tư

  • Khảo sát nhà đầu tư: lợi nhuận tối thiểu yêu cầu cho mức rủi ro nhất định?
  • Phản hồi tạo điểm dữ liệu hồ sơ rủi ro (rủi ro, lợi nhuận)
  • Thay đổi mức rủi ro => tập các điểm (rủi ro, lợi nhuận)
  • Khẩu vị rủi ro của nhà đầu tư: xác định một quan hệ định lượng giữa rủi ro và lợi nhuận
Quản trị Rủi ro Định lượng với Python

Chọn trọng số danh mục

  • Thay đổi trọng số danh mục của một danh mục cho trước => tạo tập các cặp (rủi ro, lợi nhuận)
  • Thay đổi trọng số = khởi đầu quản trị rủi ro!
  • Mục tiêu: đổi trọng số để tối đa hóa lợi nhuận kỳ vọng, với mức rủi ro cho trước
    • Tương đương: tối thiểu hóa rủi ro, với mức lợi nhuận kỳ vọng cho trước
  • Thay đổi trọng số = điều chỉnh mức phơi nhiễm rủi ro của nhà đầu tư
Quản trị Rủi ro Định lượng với Python

Lý thuyết danh mục hiện đại

  • Danh mục hiệu quả: trọng số cho lợi nhuận kỳ vọng cao nhất với mức rủi ro cho trước
  • Lý thuyết danh mục hiện đại (MPT), 1952
    • H. M. Markowitz (Nobel 1990)
  • Véc-tơ trọng số hiệu quả $w^\star$ thỏa mãn:

Bài toán tối ưu để tìm danh mục hiệu quả

Quản trị Rủi ro Định lượng với Python

Biên hiệu quả

  • Tính nhiều danh mục hiệu quả cho các mức rủi ro khác nhau
  • Biên hiệu quả: quỹ tích các cặp (rủi ro, lợi nhuận) do danh mục hiệu quả tạo ra
  • Thư viện PyPortfolioOpt: công cụ tối ưu cho MPT
    • Lớp EfficientFrontier: tạo từng danh mục tối ưu
    • Lớp Constrained Line Algorithm (CLA): tạo toàn bộ biên hiệu quả
      • Cần ma trận hiệp phương sai lợi nhuận
      • Cần đại diện cho lợi nhuận kỳ vọng tương lai: lợi nhuận lịch sử bình quân
Quản trị Rủi ro Định lượng với Python

Danh mục ngân hàng đầu tư 2005 - 2010

  • Lợi nhuận kỳ vọng: dữ liệu lịch sử
  • Ma trận hiệp phương sai: Covariance Shrinkage cải thiện ước lượng
  • Đối tượng Constrained Line Algorithm CLA
  • Danh mục phương sai nhỏ nhất: cla.min_volatility()
  • Biên hiệu quả: cla.efficient_frontier()

 

expected_returns = mean_historical_return(prices)

efficient_cov = CovarianceShrinkage(prices).ledoit_wolf()
cla = CLA(expected_returns, efficient_cov)
minimum_variance = cla.min_volatility()
(ret, vol, weights) = cla.efficient_frontier()
Quản trị Rủi ro Định lượng với Python

Trực quan hóa biên hiệu quả

  • Biểu đồ phân tán các cặp (độ biến động, lợi nhuận)

Đồ thị biên hiệu quả vẽ như chuỗi các cặp (rủi ro, lợi nhuận)

Quản trị Rủi ro Định lượng với Python

Trực quan hóa biên hiệu quả

  • Biểu đồ phân tán các cặp (độ biến động, lợi nhuận)
  • Danh mục phương sai nhỏ nhất: độ biến động thấp nhất trong các danh mục hiệu quả

Danh mục phương sai nhỏ nhất được tô sáng trên đồ thị biên hiệu quả

Quản trị Rủi ro Định lượng với Python

Trực quan hóa biên hiệu quả

  • Biểu đồ phân tán các cặp (độ biến động, lợi nhuận)
  • Danh mục phương sai nhỏ nhất: độ biến động thấp nhất trong các danh mục hiệu quả
  • Tăng khẩu vị rủi ro: di chuyển theo biên

Chuyển động dọc biên hiệu quả được minh họa bằng mũi tên hướng tới rủi ro và lợi nhuận cao hơn

Quản trị Rủi ro Định lượng với Python

Ayo berlatih!

Quản trị Rủi ro Định lượng với Python

Preparing Video For Download...