Sortino Ratio là gì? Khác biệt với Sharpe và cách dùng đúng
Sortino Ratio chỉ phạt biến động xuống (downside deviation), khác Sharpe phạt cả 2 chiều. Công thức, Python, khi nào Sortino > Sharpe có ý nghĩa, áp dụng cho VN30.
Sortino Ratio — do Frank A. Sortino đề xuất 1980s — là biến thể của Sharpe giải quyết một vấn đề logic: Sharpe phạt cả biến động lên (upside) và xuống (downside), nhưng nhà đầu tư không sợ upside. Sortino chỉ tính độ lệch chuẩn của các phiên lỗ.
Trong giao dịch định lượng, Sortino thường được báo cáo song song với Sharpe. Khi Sortino >> Sharpe → chiến lược có upside skew (lỗ nhỏ thường, lãi to thi thoảng — giống trend following). Khi Sortino ≈ Sharpe → returns đối xứng. Khi Sortino < Sharpe → có vấn đề về tính toán.
1. Định nghĩa & công thức
$$ SoR = \frac{E[R_p] - R_f}{\sigma_d} $$
Với $\sigma_d$ là downside deviation (chỉ tính các phiên lỗ): $$ \sigma_d = \sqrt{\frac{1}{N}\sum_{t=1}^{N} \min(R_t - MAR, 0)^2} $$
MAR (Minimum Acceptable Return) thường set = 0 (chỉ phạt phiên lỗ thực sự) hoặc = $R_f$.
2. Cách tính bằng Python
import numpy as np
def sortino_ratio(returns, mar=0.0, periods_per_year=252):
"""
returns: array lợi nhuận hàng phiên
mar: Minimum Acceptable Return per period (vd 0)
"""
excess = returns - mar
downside = np.minimum(excess, 0)
downside_dev = np.sqrt(np.mean(downside ** 2)) * np.sqrt(periods_per_year)
mean_excess = np.mean(excess) * periods_per_year
return mean_excess / downside_dev if downside_dev > 0 else np.nan
Code mẫu trên là khung tham khảo cho việc tự tính Tỷ số Sortino. 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
| Sortino | Đánh giá |
|---|---|
| < 0 | Trung bình lỗ — không nên trade |
| 0 – 1 | Yếu |
| 1 – 2 | Trung bình tốt |
| 2 – 3 | Tốt |
| > 3 | Rất tốt — kiểm tra overfit |
4. Giá trị điển hình theo loại tài sản / chiến lược
| Chiến lược | Sortino điển hình |
|---|---|
| Buy & Hold VN-Index | 0.6 – 1.0 |
| Mean reversion VN30 | 1.0 – 2.0 |
| Trend following multi-asset | 1.5 – 3.0 (high upside skew) |
| Short volatility | 1.5 – 4.0 (nhưng tail risk lớn) |
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
-
Ít phiên lỗ → Sortino bị thổi phồng: chiến lược chạy ngắn hoặc trong regime favorable có thể không có downside để tính → Sortino → ∞.
-
MAR chọn sai: dùng MAR = $R_f$ daily quá khắt khe; dùng MAR = 0 cho ra số khác. Phải nhất quán khi so sánh chiến lược.
-
Vẫn giả định returns iid: tail risk chưa được nắm trọn — cần kết hợp với Max Drawdown, Tail Ratio.
6. Khi nào chỉ số này gây hiểu lầm
Sortino misleading khi sample size nhỏ — vài phiên lỗ định nghĩa toàn bộ denominator. Cần ≥ 252 phiên với ≥ 30 phiên lỗ để Sortino có ý nghĩa thống kê. Tránh báo cáo Sortino cho backtest 6 tháng.
7. Đặc thù khi áp dụng cho TTCK Việt Nam
Trên VN30, Sortino thường cao hơn Sharpe ~30-50% cho chiến lược trend following dài hạn (do skew dương) và ngang bằng Sharpe cho mean reversion (returns gần đối xứng). Khi báo cáo cho nhà đầu tư VN, nên trình bày cả 2 — riêng Sortino có thể tạo cảm giác chiến lược “đẹp hơn thực tế”.
8. Các chỉ số liên quan trong cùng hệ thống
Tỷ số Sortino (SoR) 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
-
Sortino, F. A., van der Meer, R. (1991). Downside risk. Journal of Portfolio Management.
-
Rollinger, T., Hoffman, S. (2013). Sortino: A Sharper Ratio. CME Group.
10. Câu hỏi thường gặp
Tỷ số Sortino 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ỷ số Sortino 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ỷ số Sortino 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ỷ số Sortino (SoR). 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