Trang chủ > Kiến thức EA & MT5 > Cạm bẫy của backtest và kiểm thực thực tế

BacktestMT5Trung cấp

Cạm bẫy của backtest — Điều chỉ kiểm thực thực tế mới biết được

Cập nhật lần cuối: 2026-05-20 | Thời gian đọc: 15 phút

Dù backtest cho đường vốn tăng đẹp, điều đó không đảm bảo lợi nhuận trong tương lai. Backtest có nhiều "cạm bẫy" khiến kết quả trông tốt hơn thực tế. Bài viết này giải thích bản chất của những cạm bẫy đó và cách tiếp cận kiểm thực thực tế để tránh bị chúng đánh lừa.

Tại sao backtest "quá đẹp" lại nguy hiểm

Backtest là mô phỏng trên dữ liệu giá lịch sử. Dữ liệu quá khứ chỉ có một kịch bản duy nhất — nên nếu điều chỉnh EA khớp với nó, bạn có thể tạo ra kết quả đẹp tùy ý. Đây chính là tối ưu hóa quá mức (curve fitting).

Hơn nữa, nếu cài đặt backtest dễ dàng hơn thực tế, kết quả sẽ tốt hơn thực tế. Cố định spread ở mức hẹp, giả định lệnh luôn khớp đúng giá mong muốn — những "khoảng cách với thực tế" này tích lũy lại sẽ tạo ra sự chênh lệch lớn giữa backtest và vận hành thực.

"Backtest thắng" chỉ là điểm khởi đầu. Điều quan trọng là những con số đó được tạo ra trong điều kiện thực tế đến mức nào, và liệu chúng có tái hiện trong giai đoạn chưa biết không.

Chất lượng mô phỏng và dữ liệu tick

Strategy Tester của MT5 thay đổi độ chính xác tính toán (chất lượng mô phỏng) tùy theo cài đặt. Với cách tính dựa trên giá mở cửa (Open price only), biến động giá trong nến bị bỏ qua và việc xác định SL/TP có bị chạm hay không sẽ không chính xác.

Chính xác nhất là chế độ "Every tick (the most accurate method based on all available least timeframes)" hoặc "Every tick based on real ticks". Chế độ trước thường hiển thị độ chính xác khoảng 99.9%. Các chiến lược biên độ nhỏ như scalping càng bị ảnh hưởng nhiều hơn bởi độ chính xác tick.

Chế độ tính toánĐộ chính xácMục đích sử dụng
Chỉ giá mở cửaThấpChỉ dùng để xem xu hướng tổng thể
1 phút OHLCTrung bìnhKiểm tra nhanh
Every tickKhoảng 99.9%Bắt buộc cho kiểm định trước khi phát hành
Tick thực tếCao nhấtKiểm định chính xác với dữ liệu thực của broker

4 loại chi phí hay bị bỏ qua

Những yếu tố này trông nhỏ trong backtest nhưng sẽ ăn mòn lợi nhuận trong vận hành thực.

1

Biến động spread

Backtest thường dùng spread cố định, nhưng spread thực tế biến động theo khung giờ — trong thời điểm công bố số liệu kinh tế, spread có thể nở rộng gấp 5–10 lần bình thường. Nếu dùng spread cố định quá hẹp, bạn đang đánh giá thấp chi phí giao dịch thực.

2

Slippage

Là sự chênh lệch giữa giá mong muốn và giá khớp lệnh thực tế. Backtest gần như bỏ qua yếu tố này, nhưng trong biến động mạnh hay scalping, đây là nguồn thua lỗ không thể bỏ qua.

3

Swap (lãi suất qua đêm)

Chi phí lãi suất phát sinh khi giữ vị thế qua ngày. Với EA giữ lệnh dài ngày, swap tích lũy có thể ảnh hưởng đáng kể đến lợi nhuận/lỗ. Cần kiểm tra cài đặt swap trong backtest có khớp với thực tế không.

4

Lệnh bị từ chối / requote

Trong vận hành thực, lệnh có thể không khớp được hoặc bị báo giá lại. Backtest luôn giả định lệnh khớp được, nên ma sát này không được tái hiện.

Checklist cạm bẫy của backtest

Khi xem kết quả backtest, hãy kiểm tra các điểm sau. Càng nhiều điểm phù hợp, càng nên chiết khấu con số đó.

Điểm kiểm traNội dung cạm bẫy
Chất lượng mô phỏng dưới 99.9%Biến động giá trong nến bị bỏ qua, xác định SL/TP không chính xác
Spread cố định và hẹpĐánh giá thấp chi phí giao dịch thực tế
Giai đoạn ngắn (dưới 3 năm)Chỉ bao gồm một pha thị trường cụ thể, kết quả bị lệch
PF vượt 3.0, đường vốn quá mượtNghi ngờ mạnh về tối ưu hóa quá mức
Đánh giá trên chính giai đoạn đã tối ưu hóaNhầm lẫn giữa khớp dữ liệu quá khứ với năng lực thực
Chỉ một cặp tiền tệ, một giai đoạnCó thể chỉ là may mắn ngẫu nhiên

Xác nhận bằng kiểm thực thực tế và đa giai đoạn

Cách tốt nhất để tránh cạm bẫy của backtest là "kiểm định lặp đi lặp lại trong nhiều điều kiện độc lập". Một kết quả tốt duy nhất có thể là may mắn — nhưng nếu ổn định dương trong các giai đoạn khác nhau và điều kiện khác nhau, có thể kỳ vọng EA có lợi thế thực sự.

1

Chia thành nhiều giai đoạn để test

Chia 10 năm thành 3–4 giai đoạn, kiểm tra từng giai đoạn riêng lẻ có dương không. Nếu chỉ một giai đoạn nổi bật đỡ toàn bộ kết quả, cần thận trọng.

2

Dùng Walk-Forward Analysis để phát hiện tối ưu hóa quá mức

Kiểm tra kết quả có bị suy giảm trong giai đoạn chưa dùng để tối ưu hóa (OOS) không. Đây là phương pháp đáng tin cậy nhất để phát hiện tối ưu hóa quá mức.

3

Dùng Forward Test để đối mặt với thị trường thực

Chạy ít nhất 3 tháng trên tài khoản demo — kiểm tra EA có duy trì được 70–130% kết quả backtest dưới điều kiện spread và slippage thực tế không.

Chỉ khi vượt qua cả ba bước — backtest, Walk-Forward Analysis và forward test — EA mới trở thành ứng viên để đưa vốn thực vào. Thiếu bất kỳ bước nào, cơ sở đánh giá vẫn chưa đủ.

🔬 Dùng Walk-Forward Analysis để phát hiện tối ưu hóa quá mức

Trong số các cạm bẫy của backtest, tối ưu hóa quá mức là thứ khó chịu nhất. Bài viết về Walk-Forward Analysis hướng dẫn cụ thể quy trình phát hiện.

Đọc bài về Walk-Forward Analysis →

Câu hỏi thường gặp

Q: Chất lượng mô phỏng bao nhiêu % thì đáng tin cậy?

Với kiểm định chính thức trước khi phát hành, hãy dùng chế độ "Every tick" với mục tiêu 99.9%. Chỉ giá mở cửa hay 1 phút OHLC có thể dùng để xem xu hướng tổng thể, nhưng do xác định SL/TP không chính xác, không dùng được để ra quyết định chấp nhận hay loại bỏ cuối cùng.

Q: Nên đặt spread trong backtest là bao nhiêu?

Hãy đặt theo spread trung bình thực tế của broker và cặp tiền bạn sẽ dùng. Để bảo thủ hơn, hãy chạy lại test với khoảng 1.5 lần spread trung bình và xem lợi nhuận có còn không. Tuyệt đối tránh dùng giá trị cố định quá hẹp.

Q: Backtest cần bao nhiêu năm?

Tối thiểu 5 năm, tốt nhất là 10 năm. Giai đoạn ngắn có thể chỉ bao gồm uptrend hoặc sideways — kết quả sẽ bị lệch. Quan trọng là phải test trong giai đoạn có biến động mạnh như khủng hoảng tài chính 2008 hay COVID.

Q: Backtest tốt có đảm bảo thắng trong vận hành thực không?

Không đảm bảo. Backtest chỉ cho biết "có hoạt động trong quá khứ không". Nếu đã tối ưu hóa quá mức, sẽ không tái hiện trong tương lai. Chỉ khi vượt qua cả Walk-Forward Analysis và forward test mới có thể xem xét làm ứng viên vận hành thực.

Q: Tại sao kết quả backtest và forward test lại khác nhau?

Ba nguyên nhân chính: tối ưu hóa quá mức, spread trong backtest hẹp hơn thực tế, và slippage không được tính đến. Nếu PF của forward test thấp hơn 70% so với backtest, hãy kiểm tra từng nguyên nhân một.