Đo lường rủi ro danh mục

Nhập môn Phân tích Danh mục đầu tư với Python

Charlotte Werger

Data Scientist

Rủi ro của danh mục

  • Đầu tư có rủi ro: từng tài sản có thể tăng hoặc giảm
  • Lợi nhuận kỳ vọng là một biến ngẫu nhiên
  • Độ phân tán quanh trung bình đo bằng phương sai $\sigma^2$, thước đo phổ biến của biến động
  • $\sigma^2 = \frac{\sum\limits_{i=1}^N (X -\mu)^2}{N}$

Rủi ro như một thế cân bằng

Nhập môn Phân tích Danh mục đầu tư với Python

Phương sai

$$

  • Phương sai của từng tài sản khác nhau: có tài sản phân tán nhiều hoặc ít quanh trung bình
  • Phương sai danh mục không đơn thuần là tổng có trọng số phương sai của các tài sản
  • Do lợi nhuận các tài sản có tương quan, việc tính trở nên phức tạp

Phân phối có phương sai cao và thấp

Nhập môn Phân tích Danh mục đầu tư với Python

Phương sai và tương quan liên quan thế nào đến rủi ro danh mục?

$$

  • Tương quan giữa tài sản 1 và 2 ký hiệu $\rho_{1,2}$, cho biết mức độ chúng biến động cùng nhau
  • Phương sai danh mục xét đến phương sai từng tài sản ($\sigma_1^2, \sigma_2^2, ...$), trọng số trong danh mục ($w_1, w_2$), và tương quan giữa chúng
  • Độ lệch chuẩn ($\sigma$) là căn bậc hai của phương sai ($\sigma^2$); cả hai đo biến động
Nhập môn Phân tích Danh mục đầu tư với Python

Tính phương sai danh mục

$$ Công thức phương sai danh mục

  • $\rho_{1,2} \sigma_1 \sigma_2$ gọi là hiệp phương sai giữa tài sản 1 và 2
  • Hiệp phương sai cũng có thể viết là $ \sigma_{1,2} $
  • Nhờ đó ta có thể viết:

Công thức phương sai danh mục viết lại

Nhập môn Phân tích Danh mục đầu tư với Python

Viết ngắn gọn phương sai danh mục

Công thức phương sai danh mục

  • Có thể viết lại dưới dạng ma trận, thuận tiện hơn khi lập trình:

Phương sai danh mục ở dạng ma trận

  • Diễn giải, trong python cần tính:

    Phương sai danh mục = Trọng số chuyển vị x (Ma trận hiệp phương sai x Trọng số)

Nhập môn Phân tích Danh mục đầu tư với Python

Phương sai danh mục trong python

price_data.head(2)

ticker        AAPL       FB        GE       GM       WMT
date                    
2018-03-21    171.270    169.39    13.88    37.58    88.18
2018-03-22    168.845    164.89    13.35    36.35    87.14
# Calculate daily returns from prices
daily_returns = df.pct_change()
# Construct a covariance matrix for the daily returns data
cov_matrix_d = daily_returns.cov()
Nhập môn Phân tích Danh mục đầu tư với Python

Phương sai danh mục trong python

# Construct a covariance matrix from the daily_returns
cov_matrix_d = (daily_returns.cov())*250
print (cov_matrix_d)

        AAPL          FB          GE          GM          WMT                    
AAPL    0.053569    0.026822    0.013466    0.018119    0.010798
FB      0.026822    0.062351    0.015298    0.017250    0.008765
GE      0.013466    0.015298    0.045987    0.021315    0.009513
GM      0.018119    0.017250    0.021315    0.058651    0.011894
WMT     0.010798    0.008765    0.009513    0.011894    0.041520
weights = np.array([0.2, 0.2, 0.2, 0.2, 0.2])
Nhập môn Phân tích Danh mục đầu tư với Python

Phương sai danh mục trong python

# Calculate the variance with the formula
port_variance = np.dot(weights.T, np.dot(cov_matrix_a, weights))
print (port_variance)

0.022742232726360567
# Just converting the variance float into a percentage
print(str(np.round(port_variance, 3) * 100) + '%')

2.3%
port_stddev = np.sqrt(np.dot(weights.T, np.dot(cov_matrix_a, weights)))
print(str(np.round(port_stddev, 3) * 100) + '%')
15.1%
Nhập môn Phân tích Danh mục đầu tư với Python

Ayo berlatih!

Nhập môn Phân tích Danh mục đầu tư với Python

Preparing Video For Download...