Cách đọc kết quả backtest MT5: sáu con số quyết định EA Trading Bot có đáng tin không
Ai bán EA Trading Bot cũng đưa ra một đường cong vốn đi lên. Bài này không dạy bạn nghi ngờ người bán, mà dạy bạn đọc chính bản báo cáo họ đưa, để tự kết luận thay vì tin hay không tin.
Báo cáo Strategy Tester của MetaTrader 5 có hàng chục dòng số. Phần lớn không quan trọng. Sáu con số dưới đây đủ để loại bỏ đa số EA Trading Bot không dùng được, và chúng nên được đọc theo đúng thứ tự này.
1. Modelling quality — đọc trước mọi thứ khác
Đây là con số nói bản kiểm thử mô phỏng thị trường sát tới đâu. MetaTrader tính nó theo chất lượng dữ liệu giá bạn nạp vào. Nếu chạy bằng dữ liệu nến một phút, con số thường dừng quanh 90%. Nếu chạy bằng dữ liệu tick thật, nó lên 99% trở lên.
Khoảng cách giữa 90% và 99% không phải chuyện làm đẹp. Cùng một EA, chạy bằng nến một phút có thể cho đường cong vốn rất đẹp, còn chạy bằng tick thật lại lỗ. Lý do là ở mức 90%, phần mềm phải tự đoán giá di chuyển thế nào bên trong mỗi cây nến, và cú đoán đó luôn dễ chịu hơn thực tế.
Thấy modelling quality dưới 99% thì chưa cần đọc tiếp. Không phải vì EA Trading Bot chắc chắn tệ, mà vì bản báo cáo đó chưa đủ tư cách để kết luận điều gì.
Ngược lại, 99% cũng không tự động là đáng tin. Nếu dữ liệu lịch sử có lỗ hổng, hoặc spread được đặt cố định ở mức không tồn tại ngoài đời, thì con số 99% chỉ đo độ mịn của một thứ vốn đã sai.
2. Drawdown tối đa — quan trọng hơn lợi nhuận
Drawdown là mức sụt giảm sâu nhất của tài khoản so với đỉnh trước đó. Đây là con số nên đọc trước lợi nhuận, vì nó quyết định bạn có trụ được tới lúc EA Trading Bot sinh lời hay không.
Toán học của nó khắc nghiệt hơn cảm giác. Mất 50% thì phải lãi 100% mới về lại điểm hoà. Mất 20% chỉ cần lãi 25%. Chênh lệch giữa hai con số đó lớn hơn nhiều so với vẻ ngoài của chúng.
| Drawdown | Cần lãi bao nhiêu để hoà vốn |
|---|---|
| 10% | 11% |
| 20% | 25% |
| 30% | 43% |
| 50% | 100% |
| 70% | 233% |
Còn một câu hỏi nữa quan trọng không kém con số: drawdown đó kéo dài bao lâu. Sụt 20% rồi hồi trong hai tuần khác hẳn sụt 20% rồi nằm dưới đáy suốt tám tháng. Báo cáo không nói điều này, phải nhìn vào hình dáng đường cong vốn.
3. Profit factor — và ngưỡng khiến nó đáng ngờ
Profit factor là tổng lãi chia tổng lỗ. Trên 1 nghĩa là có lời. Nhưng ngưỡng đáng quan tâm cao hơn thế nhiều.
| Profit factor | Nên hiểu thế nào |
|---|---|
| Dưới 1,2 | Biên quá mỏng, phí và trượt giá ăn hết |
| 1,5 trở lên | Chấp nhận được |
| 2,0 trở lên | Tốt, nếu số lệnh đủ nhiều |
| Trên 5,0 trên giai đoạn ngắn | Nhiều khả năng là tối ưu quá mức |
Dòng cuối cùng là dòng hay bị hiểu ngược. Con số càng đẹp không có nghĩa EA Trading Bot càng tốt. Một profit factor cao bất thường trên một giai đoạn ngắn thường là dấu hiệu tham số đã được chỉnh cho vừa khít quá khứ, chứ không phải chiến lược có lợi thế thật.
4. Số lệnh — mẫu quá nhỏ thì mọi con số đều vô nghĩa
Một EA Trading Bot thắng 9 trên 10 lệnh nghe rất ấn tượng, nhưng mười lệnh không nói lên điều gì. Đó là cỡ mẫu mà may mắn thuần tuý cũng tạo ra được.
Ngưỡng thường được dùng là từ 200 lệnh trở lên. Dưới mức đó, mọi tỉ lệ thắng và profit factor đều nên đọc như một gợi ý chứ không phải bằng chứng.
5. Giai đoạn kiểm thử — phải có cả lúc thị trường xấu
Một EA Trading Bot chạy tốt trong hai năm xu hướng tăng chưa chứng minh được gì về khả năng sống sót. Giai đoạn kiểm thử cần dài tối thiểu hai năm, và quan trọng hơn là phải chứa đủ các kiểu thị trường: xu hướng, đi ngang, và ít nhất một cú sập.
Khi xem báo cáo, hãy hỏi ngày bắt đầu và ngày kết thúc trước khi hỏi lợi nhuận. Nếu giai đoạn được chọn khéo léo để né đúng những tháng khó, con số cuối cùng không có giá trị tham khảo.
6. Out-of-sample — con số duy nhất khó làm giả
Năm mục trên đều có thể được làm đẹp bằng cách chỉnh tham số cho vừa khít dữ liệu quá khứ. Việc đó có tên riêng là curve fitting, hay tối ưu quá mức.
Cách duy nhất để phát hiện là chia dữ liệu làm hai phần. Một phần dùng để tối ưu, gọi là in-sample. Một phần giữ kín hoàn toàn, không cho EA Trading Bot nhìn thấy trong lúc tối ưu, gọi là out-of-sample. Tỉ lệ thường dùng là dành một phần ba tới một phần tư cho phần giữ kín.
Nếu kết quả trên phần giữ kín rơi thảm hại so với phần dùng để tối ưu, chiến lược không có lợi thế thật, nó chỉ đang ghi nhớ quá khứ. Một bản tối ưu không kèm giai đoạn out-of-sample thì thực chất là curve fitting có thêm vài bước.
Người bán không tự nguyện đưa phần này. Hãy hỏi thẳng: giai đoạn nào dùng để tối ưu, giai đoạn nào giữ kín, và kết quả trên giai đoạn giữ kín ra sao. Câu trả lời cho bạn biết nhiều hơn mọi ảnh chụp đường cong vốn.
Lãi ròng — luôn đọc cùng vốn và thời gian
Lãi ròng là chênh lệch cuối kỳ theo cách báo cáo hạch toán, nhưng một khoản tiền không thể tự nói lên tỷ suất hay mức rủi ro. Hãy ghi lại vốn ban đầu, giai đoạn và drawdown trước khi so các cấu hình.
Expected payoff và recovery factor — số bình quân, số tương quan
Expected payoff chia kết quả trung bình theo lệnh; recovery factor đặt lãi ròng cạnh drawdown tối đa. Cả hai đều rút gọn nhiều giao dịch thành một số, nên cần mở lại phân bố lệnh và độ dài giai đoạn để hiểu phần bị che khuất.
Tỷ lệ lệnh thắng — chưa đủ nếu thiếu lời lỗ trung bình
Tỷ lệ thắng chỉ đếm bao nhiêu lệnh kết thúc có lời. Hãy xem mỗi lệnh thắng và thua trung bình bao nhiêu, cùng lệnh âm chưa đóng và drawdown theo equity.
Backtest không phải là bằng chứng
Đọc đủ sáu con số cũng chỉ mới xong một phần ba đường. Một EA đáng chạy tiền thật cần qua ba chặng.
- Backtest trên nhiều giai đoạn khác nhau, có cả xu hướng, đi ngang và sập.
- Forward test trên tài khoản demo với dữ liệu mới, tối thiểu một tới hai tháng.
- Chạy thật với số vốn nhỏ trước khi tăng dần.
Backtest chỉ trả lời được một câu hỏi duy nhất: bộ quy tắc này từng hoạt động thế nào trong quá khứ. Nó không trả lời được câu hỏi bạn thực sự quan tâm, là nó sẽ hoạt động thế nào ngày mai.
Câu hỏi thường gặp
Nó có nghĩa là dữ liệu giá đủ chi tiết để mô phỏng sát thực tế. Nhưng nếu lịch sử giá có lỗ hổng, hoặc spread được đặt cố định ở mức không tồn tại ngoài đời, thì 99% chỉ đo độ mịn của một thứ vốn đã sai.
Từ 1,5 trở lên là chấp nhận được, từ 2,0 trở lên là tốt nếu số lệnh đủ nhiều. Ngược lại, trên 5,0 trên một giai đoạn ngắn thường là dấu hiệu tối ưu quá mức chứ không phải EA Trading Bot giỏi.
Không có ngưỡng chung, vì nó phụ thuộc mức chịu đựng của từng người. Nhưng nên nhớ mất 50% thì phải lãi 100% mới hoà vốn, trong khi mất 20% chỉ cần lãi 25%.
Thường là từ 200 lệnh trở lên. Dưới mức đó, tỉ lệ thắng và profit factor nên được đọc như gợi ý chứ không phải bằng chứng, vì may mắn thuần tuý cũng tạo ra được kết quả đẹp trên mẫu nhỏ.
Là việc chỉnh tham số cho vừa khít dữ liệu quá khứ, khiến báo cáo đẹp nhưng chiến lược không có lợi thế thật. Cách phát hiện là giữ kín một phần dữ liệu khỏi quá trình tối ưu, rồi so kết quả trên phần giữ kín với phần dùng để tối ưu.
DinexSpace gắn nhãn nguồn cho mọi con số trong hồ sơ nghiên cứu: backtest, forward, demo hay live. Bạn tự đối chiếu các điểm kiểm tra được nêu trong bài.