- Backtest trung thực giúp loại bỏ chiến lược tồi, không phải chứng minh chiến lược thắng.
- Hai kẻ thù lớn nhất: overfitting và look-ahead bias.
- Tách dữ liệu in-sample / out-of-sample; mô phỏng phí và trượt giá.
- Đọc đường vốn, phân phối R, số lệnh và drawdown — không chỉ nhìn lợi nhuận tổng.
Backtest là cách rẻ và nhanh nhất để biết một chiến lược có đáng theo đuổi hay không — nếu bạn làm trung thực. Làm cẩu thả, nó không giúp bạn loại ý tưởng tồi mà chỉ khiến bạn tự tin hơn vào một thứ vốn không hoạt động. Hai kẻ thù lớn nhất là overfitting và look-ahead bias.
Mục tiêu của backtest không phải tạo ra đường vốn đẹp nhất, mà là ước lượng trung thực nhất về hành vi của chiến lược trong điều kiện thật. Sự khác biệt giữa hai mục tiêu này quyết định bạn sẽ kiếm tiền hay mất tiền khi triển khai thật.
Hai cái bẫy phổ biến nhất khi backtest
Phần lớn các backtest "đẹp giả tạo" đến từ hai nguyên nhân: overfitting và look-ahead bias. Hiểu rõ bản chất của chúng giúp bạn nhận ra dấu hiệu trước khi tự lừa mình.
1. Overfitting — khớp quá khứ, vỡ trận tương lai
Overfitting (tối ưu hoá quá mức) xảy ra khi bạn tinh chỉnh tham số đến mức chiến lược khớp gần như hoàn hảo với dữ liệu quá khứ, nhưng lại vô dụng với dữ liệu chưa từng thấy. Bản chất, bạn không còn mô hình hoá quy luật thị trường mà đang "học thuộc" nhiễu ngẫu nhiên của một đoạn lịch sử cụ thể.
Ví dụ: bạn thử một chiến lược cắt lỗ ở mức 1,8% và chốt lời ở 3,4% vì đúng những con số lẻ này cho lợi nhuận cao nhất trên dữ liệu năm ngoái. Khi bạn phải dùng tham số quá "vừa khít" như vậy mới có kết quả tốt, đó là dấu hiệu điển hình của overfitting. Một chiến lược bền vững thường cho kết quả ổn định trên một dải tham số rộng, chứ không phụ thuộc vào một điểm tối ưu mong manh.
2. Look-ahead bias — dùng thông tin của tương lai
Look-ahead bias (thiên lệch nhìn trước) là khi chiến lược vô tình sử dụng thông tin chưa tồn tại tại thời điểm ra quyết định. Ví dụ: bạn vào lệnh dựa trên giá đóng cửa của một cây nến, nhưng trong code lại khớp lệnh ngay tại giá đóng cửa đó — trong khi thực tế bạn chỉ biết giá đóng cửa sau khi nến kết thúc, tức phải vào ở nến tiếp theo. Một dạng khác là dùng dữ liệu đã điều chỉnh hồi tố (chia cổ tức, chia tách) như thể bạn đã biết trước tại thời điểm giao dịch.
Quy trình backtest trung thực từng bước
- Tách dữ liệu thành mẫu phát triển (in-sample) và mẫu kiểm chứng (out-of-sample) — chỉ tinh chỉnh trên phần đầu, đánh giá trên phần sau
- Cố định luật vào/ra lệnh trước, hạn chế thay đổi tham số quá nhiều lần để "chữa" kết quả
- Mô phỏng thực tế: tính phí giao dịch, trượt giá (slippage) và độ trễ khớp lệnh
- Đảm bảo mọi tín hiệu chỉ dùng thông tin có sẵn tại thời điểm ra quyết định
- Kiểm tra tính bền vững trên nhiều khung thời gian, nhiều giai đoạn thị trường khác nhau
Đọc kết quả cho đúng
Một con số lợi nhuận tổng hấp dẫn nói rất ít về chất lượng chiến lược. Để phán xét trung thực, bạn cần nhìn vào cấu trúc của kết quả thay vì chỉ điểm cuối:
| Chỉ số | Câu hỏi trả lời | Dấu hiệu cảnh báo |
|---|---|---|
| Đường vốn (equity curve) | Lợi nhuận đều hay dồn cục? | Nhiều cú sụt sâu, dốc đứng bất thường |
| Phân phối R | Thắng đều hay nhờ vài lệnh may? | 1–2 lệnh chiếm phần lớn lợi nhuận |
| Số lệnh (sample size) | Mẫu đủ lớn chưa? | Dưới ~30 lệnh — thiếu ý nghĩa thống kê |
| Drawdown tối đa | Bạn chịu nổi đoạn tệ nhất? | Drawdown vượt ngưỡng chịu đựng tài chính/tâm lý |
Một đường vốn đẹp trên quá khứ chỉ là giả thuyết, chưa phải bằng chứng.
Nói cách khác, backtest không chứng minh chiến lược sẽ thắng; nó chỉ giúp loại bỏ những chiến lược chắc chắn thua và ước lượng biên độ rủi ro bạn phải sống chung. Người làm backtest giỏi không tìm sự xác nhận, họ tìm lý do để bác bỏ chính ý tưởng của mình.
XWP hỗ trợ bạn backtest sát thực tế thế nào
XWP cho phép cấu hình phí giao dịch, khoảng dữ liệu và khung thời gian sát điều kiện thực tế, rồi trình bày kết quả qua đường vốn, phân phối R và danh sách lệnh chi tiết để bạn tự phán xét bằng dữ liệu đầy đủ. Sau khi kiểm thử, hãy đưa setup qua gate rủi ro 8 chốt, đối chiếu với đồng thuận (confluence) và ghi nhật ký để so sánh kết quả thực với kỳ vọng từ backtest.
