Bắt đầu ngayBắt đầu miễn phí

Tính hiệp phương sai cho độ biến động

Trong MPT, chúng ta định lượng rủi ro thông qua độ biến động (volatility). Việc tính toán độ biến động danh mục khá phức tạp và cần các hiệp phương sai của lợi nhuận theo ngày. Bây giờ, bạn sẽ lặp qua từng tháng trong DataFrame returns_monthly và tính hiệp phương sai của lợi nhuận ngày.

Với chỉ mục datetime của pandas, bạn có thể truy cập tháng và năm bằng df.index.monthdf.index.year. Ta sẽ dùng điều này để tạo một mask cho returns_daily nhằm lấy lợi nhuận ngày của đúng tháng và năm hiện tại trong vòng lặp. Sau đó, dùng mask để lấy tập con của DataFrame như sau: df[mask]. Cách này sẽ lấy các bản ghi trong returns_daily rơi vào tháng và năm hiện tại ở mỗi vòng lặp. Cuối cùng, dùng phương thức .cov() của pandas để lấy hiệp phương sai của lợi nhuận ngày.

Bài tập này là một phần của khóa học

Machine Learning cho Tài chính bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Lặp qua chỉ mục của returns_monthly.
  • Tạo một mask cho returns_daily sử dụng tháng và năm hiện tại từ returns_monthly, và khớp với tháng và năm hiện tại từ i trong vòng lặp.
  • Dùng mask trên returns_daily và tính các hiệp phương sai bằng .cov().

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.

# Daily covariance of stocks (for each monthly period)
covariances = {}
rtd_idx = returns_daily.index
for i in returns_monthly.____:    
    # Mask daily returns for each month and year, and calculate covariance
    mask = (rtd_idx.month == i.month) & (rtd_idx.____ == i.____)
    
    # Use the mask to get daily returns for the current month and year of monthy returns index
    covariances[i] = returns_daily[____].cov()

print(covariances[i])
Chỉnh sửa và Chạy Mã