Tám con số Blave Agent báo cáo — mỗi con số nghĩa là gì và nên tin con số nào.
Bạn đang cầm một báo cáo backtest với tổng lợi nhuận +145.8%, và bạn không biết con số đó nên khiến mình phấn khích hay cảnh giác. Backtest là chạy một bộ quy tắc giao dịch trên dữ liệu lịch sử để xem nó đã hoạt động ra sao; thứ bạn nhận được không phải là dự đoán “sẽ lãi bao nhiêu”, mà là một nhóm con số để đánh giá: lợi nhuận, rủi ro, chi phí. Cách đánh giá là đọc cả ba cùng lúc, chứ không chỉ nhìn con số đầu tiên.
Chiến lược btc_sma_cross (SMA45/SMA100 trên BTCUSDT 1h, từ 2022-01-01) cho ra kết quả dưới đây. Ví dụ này không đặt ngày kết thúc backtest, nên mỗi lần chạy đều chạy tới đúng ngày hôm đó: các con số bên dưới là ảnh chụp của một lần chạy như vậy, còn bạn tự chạy hôm nay sẽ ra những con số khác.
Chiến lược này lãi hơn gấp đôi so với mua và nắm giữ — nhưng cũng có lúc chịu drawdown −42.6%, một mức rất nặng. Chấp nhận được hay không hoàn toàn tuỳ mức chịu rủi ro của bạn, và các chỉ số bên dưới sẽ giúp bạn cân nhắc điều đó. Báo cáo còn cho thấy hai con số chi phí — Tổng phí đã trả (ở đây là 22% vốn, trong 4 năm) và Số giao dịch — sẽ được nhắc lại ở phần Omega bên dưới.
Đây là ví dụ thật do chính engine backtest của Blave Agent chạy ra. Nếu bạn chưa có chiến lược của riêng mình và không biết bắt đầu từ đâu, bạn không cần viết lại từ đầu — mọi chiến lược trong thư viện chiến lược chính thức đều kèm backtest thật, nên bạn có thể xem số liệu trước rồi mới quyết định có triển khai hay không.
Tỷ lệ Sharpe = lợi nhuận thường niên hoá ÷ biến động thường niên hoá (cả chiều tăng lẫn chiều giảm). Nó trả lời: mỗi đơn vị rủi ro tổng thể đổi được bao nhiêu lợi nhuận?
| Sharpe | Diễn giải |
|---|---|
| < 0 | Lỗ sau khi điều chỉnh rủi ro |
| 0 – 0.5 | Yếu — gần như không bù được rủi ro |
| 0.5 – 1.0 | Chấp nhận được với chiến lược theo xu hướng (ví dụ SMA ở trên nằm ở đây) |
| 1.0 – 1.5 | Tốt |
| > 1.5 | Mạnh — nên hoài nghi nếu kỳ backtest ngắn |
Tỷ lệ Sortino giống Sharpe, nhưng chỉ phạt biến động chiều giảm. Biến động chiều tăng không bị tính là rủi ro. Nó trả lời: mỗi đơn vị biến động xấu đổi được bao nhiêu lợi nhuận?
Với SMA Cross, Sortino (0.72) gần bằng Sharpe (0.77) — nghĩa là biến động của chiến lược khá đối xứng. Một chiến lược có Sortino cao hơn Sharpe rõ rệt thì có những nhịp tăng lớn nhưng drawdown được kiểm soát, và đó là điều đáng mong muốn.
| Sortino so với Sharpe | Điều đó gợi ý gì |
|---|---|
| Sortino ≈ Sharpe | Lợi nhuận đối xứng — biến động chiều tăng và chiều giảm tương đương |
| Sortino >> Sharpe | Lợi nhuận lệch dương — lãi lớn, lỗ nhỏ (lý tưởng) |
| Sortino << Sharpe | Lợi nhuận lệch âm — lãi nhỏ, thỉnh thoảng lỗ lớn (nguy hiểm) |
Drawdown tối đa là mức sụt giảm lớn nhất từ đỉnh xuống đáy của đường vốn trong kỳ backtest. Nếu vốn đạt đỉnh $100,000 rồi rơi xuống $57,380 trước khi hồi phục, MDD = −42.6%.
MDD quan trọng vì nó đo mức đau bạn phải chịu đựng để bám trụ với chiến lược. Phần lớn mọi người bỏ cuộc từ lâu trước khi nó hồi phục.
Tỷ lệ Omega = tổng lợi nhuận trên một ngưỡng ÷ tổng lợi nhuận dưới ngưỡng đó. Ngưỡng thường là 0 (hoà vốn). Khác với Sharpe, Omega nắm được toàn bộ phân bố lợi nhuận, không chỉ trung bình và phương sai.
| Omega | Diễn giải |
|---|---|
| < 1.0 | Tổng lỗ lớn hơn tổng lãi — không sinh lời |
| 1.0 – 1.1 | Lãi rất mỏng, dễ vỡ trước chi phí thực tế |
| 1.1 – 1.3 | Vững |
| > 1.5 | Mạnh — hoặc có thể đã overfit |
SMA Cross có Omega = 1.04 — chỉ nhỉnh hơn 1.0 một chút. Sau 22% vốn đã trả cho phí trong 4 năm, lợi thế thực tế còn rất mỏng. Điều này là bình thường với chiến lược theo xu hướng; với loại chiến lược này, tỷ lệ Sharpe và Sortino mới là chỉ số chất lượng chính đáng tin hơn.
Lookahead bias: Dùng dữ liệu chưa có tại thời điểm ra quyết định. Mặc định Blave Agent khớp ở giá mở cửa của nến kế tiếp để ngăn điều này (ngoại lệ là những nến mà chính chiến lược đánh dấu exec_at_close — chẳng hạn phiên thanh toán khi hợp đồng tương lai chuyển tháng, sẽ khớp ở giá đóng cửa của chính nến đó), nhưng cách tính chỉ báo tự viết vẫn có thể tạo ra nó — ví dụ tính Z-score bằng trung bình của toàn bộ chuỗi.
Bỏ qua giai đoạn khởi động: Các chỉ báo như SMA(100) cần 100 nến trước khi có ý nghĩa. 100 nến đầu tiên phải bị loại khỏi phần đo hiệu suất. Tham số WARMUP của Blave Agent xử lý việc này tự động.
Tối ưu trên toàn bộ dữ liệu: Nếu bạn quét tham số bằng tất cả dữ liệu có sẵn rồi báo cáo hiệu suất trên chính dữ liệu đó, bạn đang báo cáo sai số huấn luyện chứ không phải khả năng tổng quát hoá. Luôn giữ lại ít nhất 20–30% dữ liệu để kiểm định ngoài mẫu. (Trên Blave việc đó thực tế làm thế nào, xem Cách kiểm định ngoài mẫu hoạt động.)
Bỏ qua phí: Chiến lược btc_sma_cross đã trả 22% vốn cho phí trong 4 năm. Với chiến lược tần suất cao hơn, phí có thể dễ dàng vượt quá alpha. Hãy đặt mức phí theo đúng thị trường bạn giao dịch: FEE = 0.0005 là phí taker 0.05% của hợp đồng tương lai USD-M trên Binance ở bậc VIP0 (maker là 0.02%); còn giao ngay Binance ở bậc thấp nhất tính 0.1% cho cả maker lẫn taker, nên chiến lược giao ngay viết 0.0005 là đang tính thiếu chi phí.
Nhầm tổng lợi nhuận với lợi nhuận đã điều chỉnh rủi ro: Một chiến lược lãi 200% với MDD −80% không "tốt hơn" một chiến lược lãi 80% với MDD −15%. Chiến lược đầu sẽ khiến phần lớn người dùng thật hoảng loạn thoát gần đáy.