1. Bài toán: Khi Grid gặp FSM
Trong các bài viết trước, chúng ta đã hiểu về sức mạnh của FSM trong việc ngăn chặn lệnh trùng. Tuy nhiên, nếu bạn áp dụng một cái khóa FSM duy nhất cho toàn bộ Robot rải lưới (Grid 40 tầng), bạn sẽ gặp một vấn đề nghiêm trọng: Hiện tượng nghẽn cổ chai.
Nếu giá biến động quá nhanh, chạm tầng 1 rồi nhảy ngay sang tầng 2. Nếu Robot vẫn đang “bận” xử lý tầng 1 và khóa toàn bộ tài nguyên, bạn sẽ bị mất cơ hội vào lệnh ở tầng 2.
2. Giải pháp: FSM Đa tầng (Multi-level Finite State Machine) hay “Mảng trạng thái”
Trong thiết kế của bản Nhị Quái V7.6, chúng tôi không dùng một biến trạng thái duy nhất. Chúng tôi sử dụng một Mảng Trạng Thái (State Array):
enum ENUM_STEP_STATE { STEP_READY, STEP_BUSY, STEP_LOCKED };
ENUM_STEP_STATE m_fsm_buy[41]; // Mảng quản lý 40 tầng lệnh BUY
Tại sao lại cần mảng?
Kiến trúc này cho phép Robot quản lý độc lập từng “mắt xích”:
- Tầng 5 có thể đang ở trạng thái
STEP_BUSY (đang phát lệnh).
- Tầng 6 vẫn ở trạng thái
STEP_READY (sẵn sàng đón sóng).
- Tầng 4 có thể ở trạng thái
STEP_LOCKED (đã khớp xong và khóa không cho đánh lại).
3. Quy trình xử lý tại từng Step
Khi một Tick giá đến, Robot sẽ chạy vòng lặp qua các tầng giá:
- Giá hiện tại có nằm trong vùng của Step N không?
- Trạng thái của
m_fsm_buy[N] có đang là STEP_READY không?
- Nếu cả hai là ĐÚNG -> Chuyển ngay
m_fsm_buy[N] sang STEP_BUSY và phát lệnh.
Cơ chế này đảm bảo tính song song: Robot có thể phát nhiều lệnh ở các tầng giá khác nhau cùng một lúc (nếu sàn hỗ trợ đa luồng), nhưng tại đúng cái tầng giá đó, sẽ không bao giờ có lệnh thứ hai lọt qua khe cửa hẹp của trạng thái BUSY.
4. Ưu điểm vượt trội
- Tốc độ: Không cần chờ đợi lệnh này xong mới được lệnh kia.
- Chính xác: Mỗi vùng giá là một thực thể quản lý riêng biệt.
- Dễ quản trị: Bạn có thể hiển thị trạng thái của từng mắt xích lên Dashboard màn hình để biết Robot đang “kẹt” ở tầng giá nào.
5. Kết luận
FSM đa tầng là đỉnh cao của sự kết hợp giữa hiệu năng và an toàn. Đây là yếu tố cốt lõi giúp Robot Nhị Quái chịu được những cú “quét” thị trường kinh hoàng nhất mà vẫn giữ được sự tỉnh táo trong việc quản lý lệnh.
Học cách tư duy mảng và quản lý trạng thái đa tầng ngay trong module nâng cao của khóa học:
👉 Học viện Lập trình MetaTrader 5 – Chuyên sâu Hedging
Nguồn tham khảo: HuongNghiepDuLieu.Com