| Kiến Trúc Đa Tầng (Layered Architecture): Tách File .mq5 Thành Thư Viện .mqh

Được viết bởi thanhdt vào ngày 06/02/2026 lúc 18:12 | 14 lượt xem

Kiến Trúc Đa Tầng (Layered Architecture): Tách File .mq5 Thành Thư Viện .mqh

Trong xây dựng, không ai xây nhà chọc trời bằng cách đổ một đống bê tông trộn lẫn lộn. Họ có móng, khung, tường, hệ thống điện nước riêng biệt. Bot Trading chuẩn công nghiệp cũng vậy.

Thay vì dồn tất cả vào file .mq5, Robot V5 sẽ được tái cấu trúc thành các lớp (Layer) riêng biệt, giao tiếp với nhau qua các Interface chuẩn.

1. Tại Sao Phải Chia Tách? (Separation of Concerns)

Nguyên lý Single Responsibility Principle (SRP): Một module chỉ nên chịu trách nhiệm cho một việc duy nhất.
– Module Vào Lệnh không được phép dính dáng đến Module Ghi Log.
– Module Tính Toán không được phép vẽ vời lên biểu đồ.

Lợi ích:
Tái sử dụng: Bạn có thể bê nguyên module CExecution sang một con Bot khác mà không cần sửa dòng nào.
Dễ Test: Bạn có thể kiểm tra riêng module tính toán mà không cần phải kết nối đến sàn.

2. Bản Vẽ Thiết Kế Bot V5

Chúng ta sẽ chia Bot thành 4 tầng, lưu trong các thư viện .mqh (Include file) riêng biệt:

Tầng 1: The Brain (Core Logic)

  • File: CStateEngine.mqh
  • Nhiệm vụ: Bộ não ra quyết định. Nó không biết vào lệnh như thế nào, nó chỉ biết “Lúc này nên Mua hay Nên Nghỉ”. Nó quản lý trạng thái (FSM) của Bot: Đang Hedged, Đang Lãi, hay Đang Chờ.

Tầng 2: The Warehouse (Data Management)

  • File: CInventory.mqh
  • Nhiệm vụ: Thủ kho. Nó nắm giữ danh sách lệnh hiện có.
  • “Hiện tại mình đang có 3 lệnh Buy, 2 lệnh Sell. Tổng Lot là 0.05”.
  • Nó chịu trách nhiệm đối soát (Check-sum) với sàn.

Tầng 3: The Hands (Execution)

  • File: CExecution.mqh
  • Nhiệm vụ: Chân tay thực thi. Khi CStateEngine ra lệnh “MUA!”, thằng này sẽ lo liệu việc gửi lệnh đi, đặt Stoploss, xử lý nếu bị Requote (báo giá lại) hoặc mất kết nối.

Tầng 4: The Blackbox (Audit & Logging)

  • File: CAuditManager.mqh
  • Nhiệm vụ: Hộp đen. Ghi lại mọi hành động.
  • “Lúc 10:00:01, Brain bảo Mua. Lúc 10:00:02, Hand báo Mua thành công giá 2000”.

3. Cấu Trúc Thư Mục Dự Án

Folder Bot V5 của bạn sẽ trông như thế này:

MQL5/Experts/Robot_V5/
├── Robot_V5.mq5         (File chính, chỉ dài khoảng 50 dòng để gọi các module)
├── include/
│   ├── CStateEngine.mqh
│   ├── CInventory.mqh
│   ├── CExecution.mqh
│   ├── CAuditManager.mqh
│   └── CStorage.mqh     (Quản lý Database - sẽ nói ở bài 7)

Việc này đòi hỏi bạn phải học cách dùng #include và Lập trình hướng đối tượng (OOP) cơ bản trong MQL5. Nhưng tin tôi đi, kết quả rất xứng đáng.

👉 Tiếp theo: Chúng ta sẽ đi sâu vào module đầu tiên – Người thủ kho tin cậy. Xem ngay: [Core] CInventory: Quản Lý Kho Lệnh & Cơ Chế Check-sum Đối Soát