P.Thai Capital P.Thai Capital Journal

Conditional VaR (CVaR / Expected Shortfall) là gì? Tại sao thay thế VaR

QUANT RISK METRIC · RISK MEASURE Tổn thất kỳ vọng có điều kiện Conditional VaR (CVaR / Expected Shortfall) · CVaR / ES Loại chỉ số Risk Measure Phân tích Định lượng / Backtest Áp dụng cho VN30 / Quỹ active

CVaR (Conditional Value at Risk) — còn gọi Expected Shortfall (ES) — đo tổn thất kỳ vọng khi đã vượt qua ngưỡng VaR. Trả lời câu hỏi VaR không trả lời được: “Khi danh mục rơi vào 5% trường hợp tệ nhất, trung bình mất bao nhiêu?”.

CVaR ưu việt hơn VaR ở 2 điểm: (1) là coherent risk measure (Artzner et al. 1999) — sub-additive, dùng được trong portfolio optimization; (2) capture tail beyond VaR. Basel III khuyến nghị CVaR thay VaR cho market risk capital từ 2019.

1. Định nghĩa & công thức

Định nghĩa CVaR cấp độ $\alpha$: $$ CVaR_\alpha = E[L | L \ge VaR_\alpha] $$

Tính từ historical returns: $$ CVaR_\alpha = -\frac{1}{N \cdot \alpha}\sum_{t : R_t \le -VaR_\alpha} R_t $$

Tức trung bình các returns thuộc tail $\alpha$ tệ nhất.

2. Cách tính bằng Python

import numpy as np

def historical_cvar(returns, alpha=0.05):
    """CVaR: trung bình các returns ở tail alpha."""
    var = np.quantile(returns, alpha)
    tail = returns[returns <= var]
    return -tail.mean() if len(tail) > 0 else np.nan

def parametric_cvar(returns, alpha=0.05):
    """CVaR parametric (gaussian)."""
    from scipy.stats import norm
    mu, sigma = returns.mean(), returns.std(ddof=1)
    var_z = norm.ppf(alpha)
    # E[X | X < VaR] = mu - sigma * pdf(var_z)/alpha
    return -(mu - sigma * norm.pdf(var_z) / alpha)

Code mẫu trên là khung tham khảo cho việc tự tính Tổn thất kỳ vọng có điều kiện. Khi tích hợp vào hệ thống production, cần thêm: validate input (NaN, length), handle edge cases (zero variance, empty series), unit test cho từng nhánh, và caching khi gọi nhiều lần trên cùng dataset.

3. Khoảng giá trị & cách diễn giải

Tỷ lệ CVaR/VaR Ý nghĩa
1.0 – 1.2 Tail mỏng, gần gaussian
1.2 – 1.5 Tail trung bình, equity thông thường
1.5 – 2.0 Fat tail rõ, có skew
> 2.0 Tail rất dày — short vol, distressed asset

4. Giá trị điển hình theo loại tài sản / chiến lược

Danh mục CVaR 1-day 95% (xấp xỉ)
Trái phiếu chính phủ VN 0.4% – 0.8%
VN30 ETF 2% – 3.5%
Single stock VN30 3% – 6%
Strategy short volatility 5% – 15% (CVaR cao hơn VaR nhiều)

Lưu ý: bảng giá trị điển hình mang tính tham khảo, dựa trên quy ước cộng đồng quant và sample lịch sử công khai. Giá trị thực tế phụ thuộc dataset, period, và phương pháp tính cụ thể.

5. Bốn cạm bẫy phổ biến khi sử dụng

  1. Cần sample lớn để estimate tail: CVaR 99% cần ≥ 1000 obs để tail có ≥ 10 điểm dữ liệu. Backtest 1 năm (252 phiên) chỉ có 2-3 điểm trong tail 99% → noisy.

  2. Parametric CVaR sai trong stress: gaussian assumption làm CVaR underestimate tail thực tế.

  3. Window dependency: CVaR 2018-2020 khác hoàn toàn 2007-2009.

  4. Computation cost: Monte Carlo CVaR cho portfolio nhiều asset cần ≥ 100k sims để converge.

6. Khi nào chỉ số này gây hiểu lầm

CVaR misleading khi sample không phủ tail event nào — không có data trong tail thì CVaR ≈ VaR (cùng tệ). Cần stress scenario manual để bổ sung. Ngoài ra, CVaR rất nhạy với outliers — 1 sự kiện -10% trong sample 252 phiên định nghĩa hoàn toàn CVaR 99%.

7. Đặc thù khi áp dụng cho TTCK Việt Nam

VN30 lịch sử 2010-2024 có CVaR 95% / VaR 95% ratio ≈ 1.4-1.6 — fat tail rõ rệt. Penny stocks ratio thường > 2.0. Khi build portfolio VN, optimization theo CVaR (Rockafellar-Uryasev linear programming) tạo portfolio robust hơn so với mean-variance Markowitz cổ điển.

8. Các chỉ số liên quan trong cùng hệ thống

Tổn thất kỳ vọng có điều kiện (CVaR / ES) không nên đọc đơn lẻ. Trong báo cáo rủi ro chuyên nghiệp, nó luôn được trình bày cùng các chỉ số bổ sung để cross-check và tránh blindspot. Các chỉ số liên quan đã trình bày trong chuỗi bài này:

9. Tham khảo học thuật

10. Câu hỏi thường gặp

Tổn thất kỳ vọng có điều kiện bao nhiêu là tốt? Tham khảo bảng diễn giải ở mục 3. Không có ngưỡng “tốt tuyệt đối” — phụ thuộc loại chiến lược, sample size, và benchmark tham chiếu.

Làm sao tự tính Tổn thất kỳ vọng có điều kiện trên danh mục cá nhân? Sử dụng code Python mẫu ở mục 2. Input cần thiết: chuỗi returns hàng phiên (daily) của danh mục, tối thiểu 252 phiên (1 năm) để có ý nghĩa thống kê.

Tổn thất kỳ vọng có điều kiện có khác giữa thị trường VN và quốc tế không? Có. Đặc thù VN (biên độ ±7% HOSE, T+2.5, cấm short cơ sở) ảnh hưởng đến cách tính và diễn giải. Chi tiết ở mục 7.


Ghi chú phương pháp: Bài viết tổng hợp định nghĩa, công thức, và quy ước cộng đồng quant cho chỉ số Tổn thất kỳ vọng có điều kiện (CVaR / ES). Các giá trị điển hình mang tính tham khảo, không phải khuyến nghị đầu tư. Người đọc tự kiểm chứng trên dữ liệu của mình trước khi sử dụng cho quyết định vốn thật.


Miễn trừ trách nhiệm: Nội dung mang tính phân tích định lượng, không phải khuyến nghị đầu tư. Nhà đầu tư tự chịu trách nhiệm với quyết định của mình.

Miễn trừ trách nhiệm: Nội dung là phân tích định lượng dựa trên dữ liệu lịch sử, mang tính tham khảo. KHÔNG phải khuyến nghị mua/bán. Giao dịch có rủi ro, kết quả backtest không đảm bảo hiệu suất tương lai. Nhà đầu tư tự chịu trách nhiệm cho quyết định của mình.