Sụt giảm lịch sử (Historical drawdown)
Thị trường chứng khoán có xu hướng tăng theo thời gian, nhưng điều đó không có nghĩa là bạn sẽ không trải qua các giai đoạn sụt giảm (drawdown).
Drawdown có thể được đo bằng phần trăm thua lỗ tính từ mốc tích lũy cao nhất trong lịch sử.
Trong Python, bạn có thể dùng các hàm .accumulate() và .maximum() để tính mức tối đa đang chạy (running maximum), và sử dụng công thức đơn giản dưới đây để tính drawdown:
$$ \text{Drawdown} = \frac{r_t}{RM} - 1$$
- \(r_t\): Lợi nhuận tích lũy tại thời điểm t
- \(RM\): Mức tối đa đang chạy
Chuỗi lợi nhuận tích lũy của USO, một ETF theo dõi giá dầu, đã có sẵn trong biến cum_rets.
Bài tập này là một phần của khóa học
Nhập môn Quản trị Rủi ro Danh mục bằng Python
Hướng dẫn bài tập
- Tính mức tối đa đang chạy của lợi nhuận tích lũy ETF dầu USO (
cum_rets) bằngnp.maximum.accumulate(). - Ở những nơi mức tối đa đang chạy (
running_max) nhỏ hơn 1, đặt giá trị mức tối đa đang chạy bằng 1. - Tính
drawdowntheo công thức đơn giản ở trên vớicum_retsvàrunning_max. - Xem lại biểu đồ.
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.
# Calculate the running maximum
running_max = ____(cum_rets)
# Ensure the value never drops below 1
running_max[____] = 1
# Calculate the percentage drawdown
drawdown = (____)/____ - 1
# Plot the results
drawdown.plot()
plt.show()