Sharpe Ratio Validation
Một Sharpe ratio cao chưa chắc đã có ý nghĩa thống kê. Probabilistic Sharpe Ratio (PSR) cho bạn biết xác suất Sharpe thực sự > 0.
Vấn Đề với Sharpe Ratio
Sharpe ratio được tính từ mẫu dữ liệu hữu hạn. Nếu số lượng giao dịch ít, Sharpe có thể cao do ngẫu nhiên (data snooping). Một chiến lược có Sharpe 3.0 với 20 trades có thể thực sự có Sharpe 0.0.
Probabilistic Sharpe Ratio (PSR)
PSR do Bailey & López de Prado (2014) phát triển. Công thức:
text
PSR = Φ(
(SR_hat - SR_benchmark) * sqrt(N-1)
/ sqrt(1 - γ₁*SR_hat + (γ₂-1)/4 * SR_hat²)
)
Trong đó:
- SR_hat: Sharpe ratio ước lượng
- SR_benchmark: Sharpe ngưỡng (thường = 0)
- N: số lượng quan sát (giao dịch)
- γ₁, γ₂: skewness và kurtosis của returnsNgưỡng PSR
| PSR | Kết luận |
|---|---|
| > 0.99 | ✅ Rất mạnh — gần như chắc chắn |
| > 0.95 | ✅ Mạnh — Sharpe thực sự > 0 với 95% confidence |
| > 0.90 | ⚠️ Trung bình — cần thêm dữ liệu |
| < 0.90 | ❌ Không đủ bằng chứng |
Minimum Tracks Record (MinTRL)
Số giao dịch tối thiểu cần để tin vào Sharpe ratio:
text
MinTRL = 1 + (1 - γ₁*SR + (γ₂-1)/4 * SR²) * (z² / SR²)
Với z = 2.33 (99% confidence), Sharpe = 2.0, skewness=0, kurtosis=3
→ MinTRL ~ 30 giao dịchImplement Python
python
def probabilistic_sharpe_ratio(sharpe, n, skew, kurt, benchmark=0):
from scipy.stats import norm
numerator = (sharpe - benchmark) * (n - 1) ** 0.5
denominator = (1 - skew * sharpe + (kurt - 1) / 4 * sharpe ** 2) ** 0.5
return norm.cdf(numerator / denominator)