Định nghĩa ngắn
Overfitting (còn gọi là curve fitting, hay quá khớp) là việc chỉnh một chiến lược giao dịch quá sát với dữ liệu quá khứ. Khi đó chiến lược học cả nhiễu ngẫu nhiên chứ không chỉ quy luật thật, nên kết quả backtest đẹp nhưng không lặp lại được trên dữ liệu mới.
Backtest là chạy thử quy tắc giao dịch trên dữ liệu giá lịch sử để xem quy tắc đó lẽ ra đã cho kết quả thế nào.
Sẵn sàng thử trên tài khoản thật hoặc demo?
Liên kết đối tác · giao dịch có rủi ro thua lỗ cao
Định nghĩa chính xác hơn
Trong thống kê, một mô hình bị quá khớp khi độ phức tạp của nó quá lớn so với lượng thông tin thật trong dữ liệu. Với chiến lược giao dịch, độ phức tạp là số tham số, bộ lọc và điều kiện có thể chỉnh. Dấu hiệu chính là khoảng cách lớn giữa hai loại kết quả:
- In-sample: kết quả trên phần dữ liệu dùng để chọn tham số. Thường rất tốt.
- Out-of-sample: kết quả trên phần dữ liệu chưa được dùng khi chọn tham số. Kém hơn rõ rệt, hoặc lỗ.
Trường hợp ngược lại là underfitting: quy tắc quá đơn giản, bỏ sót cả quy luật có thật.
Ví dụ giả định
Một trader thử quy tắc giao cắt đường trung bình động trên EURUSD. Ban đầu kết quả backtest bình thường. Anh ta lần lượt thêm điều kiện: chỉ vào lệnh trong một khung giờ nhất định, bỏ qua một số ngày trong tuần, chỉnh chu kỳ đường trung bình và khoảng cắt lỗ từng chút một. Cuối cùng đường vốn trên dữ liệu cũ gần như thẳng đi lên.
Khi chạy trên đoạn dữ liệu đến sau, chiến lược thua lỗ. Kiểm tra lại thì thấy chỉ cần dịch chu kỳ đường trung bình sang giá trị kề bên là kết quả cũ đã xấu đi rất nhiều. Bộ tham số "tốt nhất" là một đỉnh nhọn đơn lẻ, không nằm trong một vùng ổn định. Đó là dấu hiệu điển hình của curve fitting.
Thuật ngữ xuất hiện ở đâu
- Nền tảng: trình kiểm thử chiến lược (Strategy Tester) trong MetaTrader 5 có chức năng tối ưu hóa tham số và tùy chọn kiểm thử forward. Tối ưu hóa càng nhiều tham số thì nguy cơ quá khớp càng cao.
- Báo cáo backtest: profit factor cao bất thường, drawdown rất thấp, ít lệnh nhưng lợi nhuận lớn là những con số cần được đối chiếu với kết quả ngoài mẫu.
- Quảng cáo robot (EA) và tín hiệu: kết quả backtest được trình bày như bằng chứng. Backtest không phải là kết quả thực tế.
Các trường hợp biên
- Data snooping (thiên lệch do thử nhiều lần): thử rất nhiều biến thể rồi chỉ giữ biến thể đẹp nhất cũng là quá khớp, kể cả khi mỗi biến thể đều đơn giản.
- Dùng lại dữ liệu out-of-sample: nếu xem kết quả ngoài mẫu rồi chỉnh tiếp, phần dữ liệu đó đã trở thành in-sample.
- Look-ahead bias là lỗi khác: dùng thông tin chưa có tại thời điểm vào lệnh. Lỗi này có thể xuất hiện cùng với overfitting.
- Walk-forward analysis: tối ưu trên một đoạn dữ liệu, kiểm tra trên đoạn kế tiếp, rồi dịch cửa sổ. Cách này giảm rủi ro quá khớp nhưng không loại bỏ được hoàn toàn.
Ngay cả chiến lược không bị quá khớp cũng có thể lỗ. Giao dịch CFD và forex có đòn bẩy có thể làm mất tiền rất nhanh. Bạn có thể đọc thêm ở trang quản lý rủi ro.
Thuật ngữ liên quan
- Đường vốn Equity Curve
- Chiến lược giao dịch
- Fat tails và tail risk
- Thiên nga đen
- Lợi suất hàng năm
- Tâm lý giao dịch
- Thuật ngữ tài chính
Câu hỏi thường gặp
Overfitting và curve fitting có khác nhau không?
Trong trading, hai từ này thường được dùng như nhau. Cả hai đều chỉ việc chỉnh chiến lược khớp với nhiễu của dữ liệu quá khứ.
Làm sao biết backtest bị quá khớp?
Hãy so sánh kết quả in-sample với out-of-sample. Kiểm tra thêm xem các tham số kề bên có cho kết quả tương tự không, và chiến lược có quá nhiều điều kiện so với số lệnh hay không.
Tài khoản demo có giúp phát hiện overfitting không?
Chạy chiến lược trên tài khoản demo là một dạng kiểm thử trên dữ liệu mới. Tuy vậy, khớp lệnh và tâm lý khi giao dịch thật có thể khác với demo.
Backtest tốt có nghĩa là chiến lược sẽ có lãi?
Không. Backtest chỉ mô tả quá khứ và không bảo đảm kết quả trong tương lai.
