Ước lượng rủi ro đuôi

Nhập môn Quản trị Rủi ro Danh mục bằng Python

Dakota Wixom

Quantitative Analyst | QuantCourse.com

Ước lượng rủi ro đuôi

Rủi ro đuôi là rủi ro của các kết quả đầu tư cực đoan, đặc biệt ở phía âm của phân phối.

  • Suy giảm lịch sử
  • Value at Risk
  • Conditional Value at Risk
  • Mô phỏng Monte-Carlo
Nhập môn Quản trị Rủi ro Danh mục bằng Python

Suy giảm lịch sử

Suy giảm (Drawdown) là tỷ lệ lỗ tính từ mức tích lũy cao nhất trong lịch sử.

$$ \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 lũy tiến
Suy giảm lịch sử của ETF dầu USO

Nhập môn Quản trị Rủi ro Danh mục bằng Python

Suy giảm lịch sử bằng Python

Giả sử cum_rets là một np.array các lợi nhuận tích lũy theo thời gian

running_max = np.maximum.accumulate(cum_rets)
running_max[running_max < 1] = 1
drawdown = (cum_rets) / running_max - 1
drawdown
Date        Return
2007-01-03    -0.042636
2007-01-04    -0.081589
2007-01-05    -0.073062
Nhập môn Quản trị Rủi ro Danh mục bằng Python

Value at Risk lịch sử

Value at Risk (VaR) là một ngưỡng, với mức tin cậy cho trước, sao cho thua lỗ sẽ không (chính xác hơn: trong lịch sử đã không) vượt quá một mức nhất định.

VaR thường được báo với các phân vị như 95, 99 và 99.9.

Ví dụ: VaR(95) = -2.3%

Tin chắc 95% rằng thua lỗ sẽ không vượt quá -2.3% trong một ngày, dựa trên dữ liệu lịch sử.

Nhập môn Quản trị Rủi ro Danh mục bằng Python

Value at Risk lịch sử bằng Python

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
var_95
-0.023
Nhập môn Quản trị Rủi ro Danh mục bằng Python

Tổn thất kỳ vọng lịch sử

Conditional Value at Risk (CVaR) ước tính mức lỗ kỳ vọng trong nhóm kịch bản tệ nhất 1 - x%.

CVaR thường được báo với các phân vị như 95, 99 và 99.9.

Ví dụ: CVaR(95) = -2.5%

Trong 5% trường hợp tệ nhất, thua lỗ trung bình vượt quá -2.5% trong lịch sử.

Nhập môn Quản trị Rủi ro Danh mục bằng Python

Tổn thất kỳ vọng lịch sử bằng Python

Giả sử bạn có đối tượng StockReturns là chuỗi thời gian lợi nhuận cổ phiếu.

Để tính CVaR(95) lịch sử:

var_level = 95
var_95 = np.percentile(StockReturns, 100 - var_level)
cvar_95 = StockReturns[StockReturns <= var_95].mean()
cvar_95
-0.025
Nhập môn Quản trị Rủi ro Danh mục bằng Python

Cùng luyện tập nào!

Nhập môn Quản trị Rủi ro Danh mục bằng Python

Preparing Video For Download...