Trong bài viết này
Sau khi đọc bài này…
- Tách tỷ lệ đạt chung khỏi nhóm bắt buộc.
- Giữ OOS và lịch sử sửa quy tắc có phiên bản.
- Phân biệt hủy xác nhận với trạng thái chưa rõ trước bù lượng.
Tra cứu thuật ngữ ngay trong bài
Backtesting (kiểm thử dữ liệu lịch sử) Kế hoạch giao dịch Khớp lệnh Giá trị tài khoản hiện tại (equity) Thanh khoản Quy mô vị thếBacktest là một bước đánh giá: định quy tắc, kiểm lịch sử, tách huấn luyện/đánh giá, rồi điều tra vận hành qua mô phỏng và nghiên cứu thật tùy chọn nếu có căn cứ. Đi qua các bước không bảo đảm tài khoản sống sót hoặc lợi nhuận lặp lại.
Một báo cáo không là cả quy trình
Mã đúng, dữ liệu đúng, kết quả lịch sử và vận hành tài khoản trả lời câu hỏi khác. Mã có thể chạy đúng ý tưởng thua; báo cáo lãi cũng có thể do mã sai. Thẻ bằng chứng có phiên bản cần câu hỏi, trạng thái mong đợi, kết quả quan sát và giới hạn còn mở. Gồm vào đúng, lỗ, không tín hiệu, từ chối xác nhận và restart; thiếu bằng chứng thì ghi “chưa kiểm”. Lãi giả định 30% chọn từ 300 tổ hợp là lý do điều tra lựa chọn, không chứng minh lợi thế. Xem cách backtest.
98% tổng không đóng được nhóm lỗi
Ghi loại tình huống cạnh kết quả. Phần trăm chung có thể che trạng thái chưa kiểm hoặc xử lý sai.
Cuộn ngang để xem toàn bộ sơ đồ
Cuộn ngang để xem hết sơ đồ.
Giả định: Danh sách đủ 100 ca giả định có tiêu chí trước. Đạt nghĩa trạng thái mong đợi được ghi đúng; không giá, tài khoản hoặc giao dịch thật. Nhóm phải đạt riêng. Đây là kiểm tra chương trình, không ước lượng độ tin cậy thống kê.
Hai nhóm bắt buộc đã định trước test. 98 ca thường ghi đúng trạng thái. Hai ca từ chối đã xác nhận cần ghi từ chối, không đánh dấu thực thi. Cả hai không đạt.
Tổng 98/100=98% chỉ mô tả danh sách. Từ chối 0/2=0%. Vì hai nhóm bắt buộc, kiểm tra còn mở: sửa xử lý từ chối, chạy lại ca liên quan và kiểm tra vận hành thường vẫn đúng.
Mỗi khung là 100% nhóm riêng; diện tích không so 98 ca với 2 ca. Mẫu không cho xác suất thất bại thị trường, thước đo broker hoặc lợi nhuận tương lai. Không phản hồi mạng không được phân loại từ chối ở đây: hai test nhận trạng thái từ chối đã xác nhận.
Viết đủ quy tắc
Ghi vào, thoát, stop, target và cỡ để tái lập. Ứng viên giả định dùng EMA(50), EMA(200), RSI(14), trung bình 20 kỳ, stop 1,5 ATR(14), đích 2,5 ATR và ngân sách 1%. Vẫn cần chính xác lúc nến, dấu “chạm”, giá có thể khớp và xử lý hai điều kiện thoát cùng lúc. Không biến danh sách chỉ báo thành thuật toán đầy đủ.
Dữ liệu theo câu hỏi nghiên cứu
Chọn lịch sử theo chiến lược và dữ liệu sản phẩm có sẵn, không số năm cứng. Lưu nguồn, sản phẩm, múi giờ, Bid/Ask, gap, phiên bản mã, đầu vào và giả định thực thi. Lưu dataset hoặc mã định danh, các thao tác và log. Phân biệt tick thật MT5 với phần sinh thay thế; đổi lịch sử, build hoặc cài tài khoản có thể đổi báo cáo dù chiến lược không đổi. Số lệnh không tự là số bằng chứng độc lập.
Giữ khối OOS độc lập thật sự
Định chia phát triển/đánh giá theo thời gian trước; 70/30 là ví dụ. OOS yếu có thể do lấy mẫu, phí, điều kiện hoặc lựa chọn. Không để test dùng chọn quy tắc. Phiên bản 1.0 test 2024–2025, thấy lỗ thứ Hai rồi phiên bản 1.1 loại thứ Hai: chạy lại 2024–2025 là bằng chứng phát triển cho 1.1. Giữ cả hai báo cáo/lý do sửa; đổi tên giai đoạn không làm nó độc lập lại.
Walk-forward là kiểm tra khác
Ví dụ train 2018–2021, test 2022; rồi train 2019–2022, test 2023. Lặp thủ tục cuộn đã chọn không dùng tương lai. 5–7 vòng là lựa chọn thiết kế. Định metric WFE và mẫu số trước khi đọc: 0,5–0,75 hoặc dưới 0,3 không là phán quyết chung. Walk-forward cần khóa quy tắc trước mỗi cửa sổ; nếu kết quả đổi phiên bản sau, ghi lịch sử thay đổi chứ không coi cửa sổ cũ chưa đụng tới.
Quan sát thời gian thực và nghiên cứu tiền thật tùy chọn
Demo hoặc chỉ quan sát không lệnh có thể kiểm lúc tín hiệu, quyền, phản hồi và restart. Ghi ID ý tưởng, lượng yêu cầu, lượng khớp và lệnh còn hoạt động. Forward trong tester MT5 là phần sau của lịch sử, khác quan sát báo giá tương lai trên demo. Tháng trôi qua không kiểm được lỗi hiếm chưa xảy ra; khớp demo không nhất thiết tái lập tài khoản thật.
Ví dụ buy mục tiêu 0,20 lot, trước mất kết nối khớp 0,08; phần còn lại sau đó đã xác nhận hủy. Không vị thế/lệnh nào khác cho ý tưởng. Gửi lặp 0,20 sẽ cho 0,28, vượt 0,08=40%. Chỉ phần thiếu 0,20−0,08=0,12 cho tổng 0,20. Nếu chưa biết hủy hay chưa, phần cũ có thể còn khớp: đối soát trạng thái trước khi gửi lại. Đây là một đường lỗi xác định, không kiểm toàn bộ độ tin cậy.
Giữ cùng mục tiêu và 0,08 đã khớp. Dòng “đã gửi hủy” chưa là “server xác nhận hủy”. Nếu 0,12 cũ vẫn hoạt động và gửi thêm 0,12, hai phần đều khớp cho 0,08+0,12+0,12=0,32 lot, vượt mục tiêu 0,12=60%. Không được áp phép bù của ca hủy xác nhận vào ca chưa rõ.
Thẻ bằng chứng ghi mã yêu cầu/order/deal, snapshot vị thế và lệnh hoạt động, thời gian nguồn và giờ Việt Nam nếu hiển thị. Tách “chưa có phản hồi”, “từ chối xác nhận”, “hủy xác nhận”. Trong MQL5, OrderSend trả true không tự nghĩa đã khớp; đọc retcode và kết quả, đối soát sự kiện/lịch sử theo ID. Đây là hướng dẫn kiểm thử trạng thái, không chương trình gửi lệnh thực hoặc bảo đảm chống mọi lệnh trùng.
Nếu có căn cứ cho nghiên cứu tiền thật, ghi hợp đồng/phơi nhiễm cụ thể; micro-lot không nghĩa một phần mười mục tiêu bất kỳ. 3–6 tháng chỉ minh họa. So phí/khớp với mô hình, ghi khác biệt trước cân nhắc tăng. Kết quả giống qua các bước không xóa rủi ro thị trường hoặc tự xác nhận điều kiện tài khoản ở Việt Nam.
Ví dụ pipeline breakout được gán
Mọi số sau do ví dụ đặt, không kết quả quan sát. EUR/USD M30 dùng đỉnh 20 nến trước cho vào, đáy 10 nến trước cho thoát; vẫn thiếu giờ lệnh/khớp cần định. Phát triển 2014–2020, đánh giá 2021–2023. Giả sử tối ưu chọn 23/11 nến và stop 1,4 ATR: IS gán win rate 58%, PF 1,72, lợi nhuận năm 22%; OOS gán win rate 54%, PF 1,51, lợi nhuận năm 18%. Không tái lập chuỗi lệnh/drawdown từ tổng này. Demo sau gán thêm 0,5 pip phí khớp, ca tiền thật tùy chọn gán 51% thắng. Không tóm tắt nào xác nhận bước sau hoặc quyết định cỡ vị thế; so tín hiệu, payout, phí và bất định có ghi nhận.
Cùng 0,08 đã khớp, khác trạng thái phần còn lại
ID và trạng thái xác nhận là đầu vào tính lượng, không chỉ lỗi mạng.
Trên màn hình nhỏ, bạn có thể cuộn ngang hoặc phóng to sơ đồ. Các giá trị và kết luận cũng có ở phần văn bản bên dưới.
- Hủy đã xác nhận
- Thiếu 0,12 lot – Mô hình bù cho tổng 0,20.
- Chỉ đã gửi hủy
- Phần 0,12 cũ chưa rõ – Đối soát, không coi đã hủy.
- Cũ và mới cùng khớp
- 0,32 lot – Nếu bù 0,12 khi cũ vẫn còn, vượt 60%.
Thực hành tiếp
- Viết tệp quy tắc tái lập: tham số, giờ, stop, cỡ theo phần trăm equity, không “cảm thấy xu hướng”.
- Kiểm timestamp, phần thiếu, nguồn tick, thay hợp đồng và chế độ mẫu có/không bao phủ.
- Định chia, metric, walk-forward trước. 70/30, 5–7 vòng, tham số đổi 50% hoặc WFE dưới 0,5 không là phán quyết chung.
- Demo kiểm vận hành với quy tắc khóa; nếu nghiên cứu thật sau đó thì giới hạn phơi nhiễm và so thực thi/phí. 3–6 tháng hoặc Monte Carlo không bảo đảm sẵn sàng tăng cỡ.
- So phí, drawdown, bất định cùng lợi nhuận. 12% ở mọi bước không tự an toàn hơn 30% IS/8% OOS; điều tra khác biệt của lợi thế đề xuất.
Kiểm tra mức độ hiểu bài
Bài tập: khoảng 2 phút.
Xem đáp án và giải thích
Tổng đúng nhưng không thay 0/2 ở nhóm yêu cầu riêng.
Câu hỏi khác
Khác một lần backtest thế nào?
Mất bao lâu tới tiền thật?
Theo dõi gì qua các bước?
Đi qua hết có bảo đảm lãi thật?
Gửi hủy nhưng mất phản hồi thì bù 0,12 ngay?
Nguồn và kiểm chứng
- www.metatrader5.com
Nguồn tham khảo cho nội dung; xem phạm vi và giả định được nêu trong bài.
- www.metatrader5.com
Nguồn tham khảo cho nội dung; xem phạm vi và giả định được nêu trong bài.
- www.mql5.com
Nguồn tham khảo cho nội dung; xem phạm vi và giả định được nêu trong bài.
- www.mql5.com
Nguồn tham khảo cho nội dung; xem phạm vi và giả định được nêu trong bài.
- www.davidhbailey.com
Nguồn tham khảo cho nội dung; xem phạm vi và giả định được nêu trong bài.
Các phép tính dùng giả định được nêu rõ. Chúng không thay thế dữ liệu thị trường hiện tại hoặc điều khoản của nhà cung cấp.
