Backtest là gì và Strategy Tester làm gì
Backtest là chạy một chiến lược trên dữ liệu giá quá khứ để xem nó đã hoạt động ra sao. Trong MetaTrader 5, việc này do Strategy Tester (trình kiểm tra chiến lược) đảm nhận. Công cụ này chạy được Expert Advisor (EA, chương trình giao dịch tự động) và chỉ báo, trên một mã giao dịch hoặc nhiều mã.
Kết quả backtest chỉ mô tả quá khứ trong điều kiện mô phỏng. Nó không cho biết chiến lược sẽ có lãi trong tương lai. Giao dịch CFD và forex có đòn bẩy có thể làm mất tiền rất nhanh, kể cả với chiến lược có kết quả kiểm tra đẹp.
Nếu chưa có EA trong terminal, hãy xem trước cách cài đặt EA. Muốn hiểu mã nguồn của EA, xem ngôn ngữ lập trình của MetaTrader.
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
Cách backtest EA trong MT5: các bước
- Mở terminal MetaTrader 5 và đăng nhập tài khoản. Dùng tài khoản demo MT5 là đủ để tải dữ liệu lịch sử.
- Mở Strategy Tester qua menu View → Strategy Tester (tiếng Việt: Xem → Trình kiểm tra chiến lược) hoặc phím tắt Ctrl+R.
- Ở thẻ Settings, chọn Expert là EA cần kiểm tra.
- Chọn Symbol (mã giao dịch) và Timeframe (khung thời gian của biểu đồ).
- Ở mục Date, chọn khoảng thời gian kiểm tra.
- Chọn Modelling (chế độ mô phỏng giá), xem phần dưới.
- Nhập Deposit (số dư ban đầu), đơn vị tiền tệ và Leverage (đòn bẩy).
- Ở thẻ Inputs, chỉnh tham số đầu vào của EA.
- Nhấn Start. Tester tải dữ liệu lịch sử từ máy chủ của broker rồi chạy lệnh mô phỏng.
- Sau khi chạy xong, xem kết quả ở các thẻ Backtest (báo cáo), Graph (đường số dư) và Journal (nhật ký lỗi).
Tên menu và thẻ có thể khác một chút tùy bản build và ngôn ngữ giao diện. Nếu tester báo lỗi tải dữ liệu, xem lỗi MetaTrader thường gặp.
Chọn chế độ mô phỏng (Modelling)
Chế độ mô phỏng quyết định giá được tái tạo chi tiết đến đâu. Đây là thiết lập ảnh hưởng nhiều nhất đến độ tin cậy của kết quả.
| Chế độ | Cách hoạt động | Phù hợp khi |
|---|---|---|
| Every tick based on real ticks | Dùng tick thật đã lưu của broker, kèm spread thật | Cần độ chính xác cao nhất, EA vào lệnh trong nến |
| Every tick | Tạo tick giả lập từ dữ liệu nến phút | Không có đủ tick thật |
| OHLC theo nến phút | Chỉ dùng giá mở, cao, thấp, đóng của từng nến phút | Kiểm tra nhanh EA không phụ thuộc biến động trong phút |
| Open prices only | Chỉ dùng giá mở của mỗi nến ở khung đã chọn | EA chỉ ra quyết định khi nến mới mở |
| Math calculations | Không dùng dữ liệu giá | Tính toán toán học, không phải giao dịch |
Với EA có stop loss hoặc take profit gần, chế độ thô có thể cho kết quả sai lệch lớn, vì nó không biết giá chạm mức nào trước trong một nến. Cách an toàn là tối ưu nhanh bằng chế độ thô, sau đó kiểm tra lại bằng tick thật.
Cài spread và độ trễ
Spread là chênh lệch giữa giá mua và giá bán, là chi phí bạn trả cho mỗi lệnh. Spread trong tester lấy như sau:
- Với chế độ tick thật, spread lấy từ dữ liệu tick lịch sử, nên biến động theo thời điểm.
- Với các chế độ khác, bạn có thể chọn spread hiện tại hoặc nhập một giá trị cố định tính bằng point.
Spread cố định quá thấp làm kết quả đẹp hơn thực tế, nhất là với EA lướt sóng nhiều lệnh. Hãy thử thêm với spread rộng hơn mức bình thường để xem chiến lược có chịu được không.
Mục Delays cho phép giả lập độ trễ khớp lệnh. Chế độ không trễ là điều kiện lý tưởng, không có trong thực tế. Chế độ trễ ngẫu nhiên gần với giao dịch thật hơn.
Ngoài spread, còn có phí qua đêm và hoa hồng tùy loại tài khoản. Xem phí swap và thông số hợp đồng để biết các thông số cần đối chiếu. Nếu kiểm tra trên dữ liệu của Exness, điều kiện hiện tại của từng tài khoản cần được kiểm tra trong khu vực cá nhân Exness hoặc trên trang chính thức.
Kiểu tài khoản hedging hoặc netting cũng ảnh hưởng đến cách tester xử lý nhiều lệnh cùng mã.
Đọc báo cáo backtest
Thẻ Backtest hiển thị nhiều chỉ số. Các chỉ số chính:
- Total Net Profit: lãi ròng, bằng lãi gộp trừ lỗ gộp.
- Profit Factor: lãi gộp chia lỗ gộp. Nếu lãi gộp không vượt lỗ gộp, chiến lược lỗ trong kỳ kiểm tra. Profit factor rất cao kèm ít lệnh thường là dấu hiệu nghi ngờ, không phải dấu hiệu tốt.
- Expected Payoff: lãi hoặc lỗ trung bình mỗi lệnh. Nếu con số này nhỏ hơn chi phí spread thật, chiến lược rất dễ thua khi chạy thật.
- Balance Drawdown / Equity Drawdown: mức sụt giảm từ đỉnh xuống đáy của số dư và của vốn. Drawdown theo vốn (equity) tính cả lệnh đang mở, nên phản ánh rủi ro thật rõ hơn.
- Recovery Factor: lãi ròng so với drawdown tối đa, cho biết chiến lược hồi phục sau sụt giảm thế nào.
- Sharpe Ratio: lợi nhuận so với độ biến động.
- Total Trades: số lệnh. Ít lệnh thì kết quả mang tính ngẫu nhiên nhiều hơn.
Hãy xem thêm đường cong ở thẻ Graph. Đường số dư đi lên đều nhưng đường vốn có những cú sụt sâu thường cho thấy EA giữ lệnh lỗ lâu, chẳng hạn kiểu gồng lỗ hoặc nhồi lệnh. Mức drawdown nên được so với số vốn bạn chấp nhận mất, theo nguyên tắc ở trang quản lý rủi ro.
Cảnh báo overfitting
Overfitting (quá khớp) là khi tham số được tinh chỉnh quá sát dữ liệu quá khứ. Chiến lược "học thuộc" nhiễu của lịch sử thay vì một quy luật thật, nên thường thất bại trên dữ liệu mới.
Dấu hiệu thường gặp:
- Kết quả rất tốt chỉ với một bộ tham số hẹp; đổi tham số một chút là kết quả xấu hẳn.
- EA có quá nhiều tham số so với số lệnh.
- Kết quả tốt ở một giai đoạn nhưng xấu ở giai đoạn khác.
Cách giảm rủi ro:
- Dùng mục Forward trong Settings: tester tối ưu trên phần đầu của khoảng thời gian, rồi kiểm tra trên phần còn lại mà nó chưa "thấy".
- Kiểm tra trên nhiều mã và nhiều giai đoạn thị trường khác nhau.
- Ưu tiên vùng tham số cho kết quả ổn định, thay vì một điểm đỉnh duy nhất.
- Chạy thử trên tài khoản demo một thời gian trước khi cân nhắc dùng tiền thật.
Ý tưởng chiến lược nói chung có ở trang chiến lược giao dịch.
Câu hỏi thường gặp
Strategy Tester MT5 có miễn phí không?
Strategy Tester là một phần có sẵn trong MetaTrader 5, không phải cài thêm. Dữ liệu lịch sử được tải từ máy chủ của tài khoản bạn đang đăng nhập.
Nên chọn chế độ mô phỏng nào?
Khi có dữ liệu tick thật, chế độ dựa trên tick thật cho kết quả sát nhất. Các chế độ thô nhanh hơn, phù hợp cho tối ưu ban đầu.
Vì sao kết quả backtest khác giao dịch thật?
Vì spread, trượt giá, độ trễ và thanh khoản thực tế khác với mô phỏng, cùng với rủi ro overfitting. Backtest không bảo đảm kết quả tương lai.
Profit factor bao nhiêu là đủ?
Không có ngưỡng chung. Chỉ số này phải đọc cùng số lệnh, drawdown và kết quả trên dữ liệu forward.
Có thể kiểm tra chiến lược MT5 mà không có EA không?
Tester chạy chương trình tự động. Chiến lược giao dịch tay cần được viết thành EA, hoặc kiểm tra bằng cách ghi lại lệnh trên tài khoản demo.
