Ulcer Index là gì? Đo độ đau drawdown thay vì volatility
Ulcer Index — Peter Martin 1987 — đo intensity và duration của drawdown. Khác Volatility: chỉ phạt downside. Công thức Python, Martin Ratio, áp dụng cho VN-Index 2018-2022.
Ulcer Index (UI) — Peter Martin 1987 — đo độ “đau” của drawdown: intensity × duration. Không giống Volatility phạt cả upside lẫn downside, UI chỉ phạt downside; không giống MaxDD chỉ tính 1 sự kiện peak-to-trough lớn nhất, UI tính tích luỹ qua mọi drawdown.
Tên “Ulcer” xuất phát từ ý: drawdown càng sâu, càng kéo dài → trader càng “loét dạ dày”. UI là input cho Martin Ratio = Excess Return / Ulcer Index — biến thể Sharpe-like với rủi ro = “psychological pain” thay vì “volatility”.
1. Định nghĩa & công thức
Drawdown percentage tại $t$: $D_t = \frac{E_t - \max_{s \le t} E_s}{\max_{s \le t} E_s} \times 100$.
$$ UI = \sqrt{\frac{1}{N}\sum_{t=1}^{N} D_t^2} $$
Cùng đơn vị %. UI = 5 nghĩa “trung bình root-mean-square drawdown 5%”.
2. Cách tính bằng Python
import numpy as np
def ulcer_index(equity):
"""
equity: Series equity curve
"""
peak = equity.cummax()
dd_pct = ((equity - peak) / peak) * 100
return np.sqrt((dd_pct ** 2).mean())
def martin_ratio(returns, risk_free=0.05, periods_per_year=252):
"""Martin Ratio = excess return / ulcer index."""
equity = (1 + returns).cumprod()
ui = ulcer_index(equity)
excess_return_annual = (returns.mean() - risk_free / periods_per_year) * periods_per_year * 100
return excess_return_annual / ui if ui > 0 else np.nan
Code mẫu trên là khung tham khảo cho việc tự tính Chỉ số Ulcer. 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
| Ulcer Index | Đánh giá |
|---|---|
| < 2 | Rất êm — bond fund / market neutral |
| 2 – 5 | Êm — defensive equity fund |
| 5 – 10 | Trung bình — typical equity fund |
| 10 – 15 | Đau — active aggressive |
| > 15 | Cực đau — chỉ phù hợp risk-tolerant trader |
4. Giá trị điển hình theo loại tài sản / chiến lược
| Tài sản (lịch sử) | UI điển hình |
|---|---|
| Trái phiếu chính phủ VN | 1 – 3 |
| VN-Index 2010-2024 | 8 – 15 |
| S&P 500 1990-2024 | 5 – 8 |
| Single stock VN30 | 10 – 25 |
| Penny stock VN | 25 – 50+ |
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
-
Sample window dependent: UI 1 năm vs 10 năm rất khác — nhất là khi sample chứa crash.
-
Phụ thuộc đo bằng giá vs returns: dùng equity curve (return-based) chứ không phải giá raw.
-
Outlier sensitivity: 1 drawdown sâu kéo dài dominate UI.
6. Khi nào chỉ số này gây hiểu lầm
UI misleading khi sample không có drawdown event — sẽ underestimate. Ngược lại sample chứa 2008-2009 sẽ inflate UI. Tốt nhất tính UI rolling window (vd 36 tháng) để tracking thay đổi theo thời gian.
7. Đặc thù khi áp dụng cho TTCK Việt Nam
VN-Index 2018 Q4 (DD -25%, recovery 8 tháng) tạo UI spike rõ. 2022 H1 (DD -35%, recovery 12 tháng) tạo UI cao nhất 10 năm. Khi backtest chiến lược trên VN, target UI ≤ 10 cho retail-friendly, ≤ 5 cho professional fund. UI quan trọng hơn MaxDD khi assess drawdown duration — DD -20% trong 3 tháng vs trong 18 tháng có UI khác hẳn.
8. Các chỉ số liên quan trong cùng hệ thống
Chỉ số Ulcer (UI) 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
-
Martin, P. G., McCann, B. (1989). The Investor’s Guide to Fidelity Funds. Wiley.
-
Martin, P. G. (1987). The Ulcer Index. Computerized Investing.
10. Câu hỏi thường gặp
Chỉ số Ulcer 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 Chỉ số Ulcer 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ê.
Chỉ số Ulcer 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ố Chỉ số Ulcer (UI). 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.
Áp dụng vào tài khoản thật?
Mở tài khoản chứng khoán qua mã giới thiệu — nhận tư vấn 1-1, DIAMOND signal VN30 miễn phí 6 tháng, ưu đãi phí giao dịch.
CTCK VPS Securities
- Mã IB: 9836 (mở online 15 phút)
- Phí 0.15% · margin 13%/năm
- + DIAMOND signal VN30 — 6 tháng
- + Tư vấn cơ cấu danh mục 1-1
Gói VIP / DIAMOND
- Tín hiệu VN30 + Midcap hằng phiên
- Backtest 5-15 năm minh bạch
- Báo cáo NAV hằng tháng
- Workshop định lượng hằng tháng
⚠️ Giao dịch chứng khoán có rủi ro mất vốn. Chỉ đầu tư số tiền bạn có thể chịu mất. P.Thai Capital không khuyến nghị mua/bán cụ thể và không bảo lãnh lợi nhuận.
Lý thuyết bài này có thể test trên dữ liệu của bạn:
P.Thai Capital