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ơ đồ.

98% tổng không đóng được nhóm lỗiDanh sách giả định 100 ca chức năng gồm 98 ca bình thường và 2 ca từ chối lệnh đã xác nhận. 98 ca đạt tiêu chí định trước; cả 2 ca từ chối không đạt yêu cầu ghi từ chối mà không đánh dấu khớp sai. Tổng 98%, nhưng nhóm từ chối bắt buộc đạt 0/2. Khung cùng dài biểu thị 100% nhóm riêng, không cùng số ca; phần tô là tỷ lệ đạt. Không là xác suất độ tin cậy hoặc lợi nhuận chiến lược.KIỂM TRA NHÓM LỖI TRƯỚCTest chức năng giả định • tỷ lệ đạtVận hành thường98 /98 đạt100%Từ chối xác nhận0 /2 đạt0%Mỗi khung =100% của nhóm riêng.Tổng: 98 /100 =98%Tiêu chí lỗi: 0 /2 =0%Nhóm này vẫn chưa đạt.

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.

Điểm tổng cao không đóng nhóm bắt buộc chưa đạt.

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.

Ba dòng log tiếng Việt, ba mức bằng chứng

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

Cùng 0,08 đã khớp, khác trạng thái phần còn lạiMục tiêu 0,20 lot; không có vị thế/lệnh khác cho cùng ý tưởng.PHÉP TÍNH GIẢ ĐỊNHHủy đã xác nhậnThiếu 0,12 lotChỉ đã gửi hủyPhần 0,12 cũ chưa rõCũ và mới cùng khớp0,32 lot
Cùng 0,08 đã khớp, khác trạng thái phần còn lại. Mục tiêu 0,20 lot; không có vị thế/lệnh khác cho cùng ý tưởng.

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

  1. 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”.
  2. Kiểm timestamp, phần thiếu, nguồn tick, thay hợp đồng và chế độ mẫu có/không bao phủ.
  3. Đị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.
  4. 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ỡ.
  5. 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.