| [MQL5] Tuyệt chiêu trị dứt điểm ‘Vào lệnh kép’ (Race Condition) khi rải lưới Grid

Được viết bởi thanhdt vào ngày 27/04/2026 lúc 22:56 | 5 lượt xem

[MQL5] Tuyệt chiêu trị dứt điểm \”Vào lệnh kép\” (Race Condition) khi rải lưới Grid

Bạn đã bao giờ gặp tình trạng Bot rải lưới (Grid) vào 2-3 lệnh giống hệt nhau tại cùng một mức giá chưa? Đây không phải lỗi do sàn, mà là lỗi Race Condition (Tranh chấp tài nguyên) – một trong những \”cơn ác mộng\” khó chịu nhất khi lập trình Expert Advisor chuyên nghiệp trên MetaTrader 5.

1. Cơn ác mộng \”Vào lệnh kép\” là gì?

Hãy tưởng tượng kịch bản sau:
1. Giá chạm mức 1.0500. Bot quét hệ thống và thấy chưa có lệnh nào tại đây.
2. Bot phát lệnh BUY. Lệnh bắt đầu \”bay\” lên server của sàn.
3. Vì độ trễ mạng (Latancy) mất khoảng 0.5 giây, trong lúc lệnh đang bay, Tick tiếp theo lại ập đến.
4. Bot lại quét lần nữa. Vì lệnh trước đó chưa được khớp (vẫn đang bay), Bot vẫn thấy \”chưa có lệnh nào\”.
5. Bot lại bồi thêm một lệnh BUY thứ hai.

Kết quả: Bạn bị vào lệnh kép, phá vỡ toàn bộ quản lý vốn và gây áp lực ký quỹ vô ích.

2. Giải pháp \”Yếu\” – Cooldown (Thời gian chờ)

Nhiều lập trình viên chọn cách dùng hàm \