| [Audit] CAuditManager: “Hộp Đen” Ghi Log – Không Ghi Là Không Tồn Tại

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

[Audit] CAuditManager: “Hộp Đen” Ghi Log – Không Ghi Là Không Tồn Tại

Trong ngành hàng không, khi máy bay gặp sự cố, thứ đầu tiên người ta tìm là Hộp Đen.
Trong Trading, khi tài khoản bị lỗ bất thường, thứ duy nhất cứu rỗi bạn là File Log.

Nhưng dùng hàm Print() của MQL5 là chưa đủ. Bạn cần CAuditManager.

1. Tại Sao Print() Là Không Đủ?

  • Print() chỉ ghi vào tab Experts của MT5. Khi bạn tắt MT5 hoặc quá nhiều log, nó sẽ bị trôi đi mất.
  • Không có cấu trúc: Bạn không thể lọc ra “Chỉ xem các lỗi Error” hay “Chỉ xem các lệnh Buy”.

2. Ghi Log Ra File (File Logging)

CAuditManager sẽ ghi log vào file text riêng biệt trong thư mục MQL5/Files/Logs/.
Mỗi ngày một file: 2023-10-25.log.

Cấu trúc một dòng log chuẩn công nghiệp:
[TIME] [LEVEL] [CLASS] :: Message

Ví dụ:
[10:15:01] [INFO] [CStateEngine] :: Chuyển trạng thái IDLE -> ENTRY_WAIT
[10:15:02] [ERROR] [CExecution] :: Vào lệnh thất bại. Error: 10004 (Requote)

3. Phân Cấp Mức Độ (Log Levels)

Không phải cái gì cũng ghi. CAuditManager hỗ trợ các Level:
DEBUG: Ghi chi tiết từng biến số (chỉ bật khi Dev đang sửa lỗi).
INFO: Ghi các sự kiện chính (Vào lệnh, Đóng lệnh).
WARNING: Ghi các vấn đề nhẹ (Trượt giá, Lag mạng).
ERROR: Ghi lỗi nghiêm trọng (Mất kết nối DB, Hết tiền ký quỹ).

Giao diện Setting của Bot sẽ cho phép chọn mức độ Log muốn ghi.

4. Tầm Quan Trọng Của Audit Trail

Audit Trail (Vết kiểm toán) giúp bạn trả lời các câu hỏi hóc búa từ sếp hoặc nhà đầu tư:
– “Tại sao lúc 2h chiều qua Bot không cắt lỗ?” -> Mở log ra thấy: “Lúc 2h mất mạng, Bot đã cố Retry 5 lần nhưng thất bại”.
– “Tại sao Bot vào lệnh khối lượng lớn thế?” -> Mở log ra thấy: “Do số dư tài khoản tăng đột biến (Nạp tiền), Bot tự tính lại Volume theo Kelly”.

Nếu không có CAuditManager, bạn sẽ mãi mãi chỉ là một Trader “đoán mò” về chính con Bot của mình.

👉 Tiếp theo: Log giúp ta xem lại quá khứ, nhưng làm sao để Bot “nhớ” được quá khứ đó sau khi khởi động lại? Xem ngay: Lưu Trữ Bền Vững (Persistent Memory): Sức Mạnh Của SQLite Trong MT5