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

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().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

Xem khóa học

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ằng np.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 drawdown theo công thức đơn giản ở trên với cum_retsrunning_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()
Chỉnh sửa và Chạy Mã