O(N²): lỗi “thầm lặng” khiến MT5 đơ và VPS chết dần
Một trong những lỗi mà người mới viết bot rất ít khi để ý là độ phức tạp thuật toán.
Ví dụ phổ biến:
– mỗi tick quét tất cả lệnh,
– trong mỗi lệnh lại quét tiếp tất cả lệnh còn lại,
– hoặc lồng thêm một tầng kiểm tra trạng thái cụm.
Lúc tài khoản chỉ có 5–10 lệnh, bạn gần như không thấy gì.
Nhưng khi lên 100–500 lệnh mở, chi phí CPU sẽ tăng cực mạnh.
Đây chính là nơi O(N²) trở thành kẻ phá hệ thống âm thầm.
Hậu quả:
– MT5 bắt đầu lag,
– chart phản ứng chậm,
– bỏ lỡ tick quan trọng,
– VPS lên CPU cao,
– và bot không còn “real-time” như bạn nghĩ nữa.
Trong bot cày commission, nơi mọi thứ phụ thuộc vào khả năng phản ứng nhanh với hàng trăm lệnh, việc giữ logic quét ở mức O(N) là cực kỳ quan trọng.
Đó là lý do các hệ thống thực chiến thường phải:
– cache trạng thái cụm,
– gom dữ liệu position trong một lượt quét,
– dùng struct / mảng động hợp lý,
– tránh mọi vòng lặp lồng nhau không cần thiết.
Nhận định chuyên gia: Nếu một robot volume cao mà vẫn quét lệnh kiểu O(N²), chuyện đơ máy không phải “nếu”, mà là “khi nào”.
Comment ON2 nếu muốn mình viết bài tiếp: cách tư duy O(N) trong bot MT5 mà không cần quá nhiều toán.