Trước khi giao một EA, chỉ báo hay tiện ích MT5, tôi kiểm từng hành vi mà nó hứa trên terminal demo hoặc trong Strategy Tester, so kết quả với đáp án tôi tính riêng, rồi ghi lại phần đã kiểm và phần chưa kiểm. Một lần kiểm đạt chỉ cho biết mã làm đúng điều nó mô tả, chẳng hạn từ chối vào lệnh hay đóng lệnh khi chạm ngưỡng. Nó không chứng minh chiến lược sẽ có lãi, và tôi không đưa nó ra như bằng chứng lợi nhuận.
Thư viện khối, mỗi khối có một trạng thái
Phần lớn những gì tôi viết bằng MQL5 được ghép từ các khối dùng lại: điểm vào, điểm thoát, bộ lọc, giới hạn rủi ro, tính khối lượng. Mỗi khối có một dòng trong registry với một trong ba trạng thái:
verified: hành vi của khối đã được kiểm trong Strategy Tester, bằng chứng ghi lại kèm ngày và kết quả.unit_tested: các kiểm tự động của khối chạy qua, nhưng chưa có đủ bằng chứng trên tester.rejected: đã thử và loại, có ghi lý do.
Bản xuất registry ngày 09/11/2026 có 108 khối: 80 verified, 25 unit_tested, 3 rejected. Với tôi, cách chia này quan trọng hơn tổng số. Nếu EA của khách cần tới một khối mới ở mức unit_tested, tôi nói rõ điều đó trước khi hai bên thống nhất.
Trạng thái chỉ mô tả hành vi. Một khối đạt kiểm cũng chỉ cho biết nó lọc, tính khối lượng hay đóng lệnh đúng như mô tả.
Một lần kiểm khối trông thế nào
Lấy ví dụ một bộ lọc vào lệnh theo biên độ ngày: nó cho phép hoặc từ chối lệnh mới tuỳ theo phần biên độ ngày trung bình đã được dùng hết bao nhiêu. Tôi chạy nó trong Strategy Tester với bốn bộ tham số khác nhau. Với mỗi lần chạy, tôi có sẵn danh sách quyết định cho phép và từ chối mong đợi, tính độc lập với mã MQL5, rồi đem so. Ở mọi lần chạy được trình bày, số lần cho phép sai và từ chối sai đều bằng không, và 35 kiểm đơn vị của khối không có lỗi nào.
Phần đáp án tính độc lập là điều tôi coi trọng nhất. Nếu cùng một đoạn mã vừa ra quyết định vừa sinh đáp án, bài kiểm vẫn có thể đạt dù cả hai cùng sai theo một kiểu.
Tiện ích đi kèm danh sách Đã kiểm và Chưa kiểm
Với các công cụ nhỏ như bảng rà lệnh thiếu stop loss, bảng mức phơi nhiễm theo đồng tiền hay bộ bảo vệ vốn, mỗi ảnh tôi đăng đều có nhãn. Đã kiểm nghĩa là tôi thấy hành vi đó chạy đúng trên terminal demo hoặc tài khoản ảo của Strategy Tester. Chưa kiểm nghĩa là tính năng có trong công cụ nhưng tôi chưa xác nhận.
Bộ bảo vệ vốn là ví dụ rõ. Đã kiểm trên demo: khoá khi chạm ngưỡng lỗ theo tiền, đóng lệnh mới mở trong vòng 3 giây, giữ trạng thái khoá sau khi khởi động lại. Chưa kiểm: ngưỡng theo phần trăm và theo sụt giảm, mục tiêu ngày, đặt lại khi sang ngày mới. Bài kiểm còn cho thấy một điều khách nên biết trước khi dựa vào công cụ: ngưỡng là mức kích hoạt, nên khoản lỗ lúc khoá có thể vượt ngưỡng một chút.
Bộ quản lý hạn lệnh chờ cũng vậy. Phần liệt kê lệnh, tự gán hẹn giờ và tự xoá lệnh hết hạn đã được kiểm trong một lần thử khoảng một phút (62 giây). Các nút trên bảng và việc đếm ngược sau khi khởi động lại thì chưa.
Vì sao tôi không biến chuyện này thành lời hứa lợi nhuận
Không lần kiểm nào ở trên chạy trên tài khoản thật, và không lần nào đo lợi nhuận. Một khối thoát lệnh đã verified thì đóng lệnh đúng lúc. Chiến lược bao quanh nó có kiếm được tiền hay không là câu hỏi khác, và trạng thái của khối không trả lời được. Khi bàn giao, khách nhận danh sách những gì đã kiểm, kiểm ở đâu (demo hay tester) và những gì còn bỏ ngỏ.
Nếu bạn cần viết mới hoặc sửa một EA, chỉ báo hay công cụ MT5, hãy gửi tôi mô tả nó cần làm gì và bạn đang chạy nó ra sao, kèm mã giao dịch, khung thời gian và loại tài khoản. Tôi sẽ cho bạn biết phần nào kiểm được trên tester và phần nào cần tài khoản demo.