Stress & Chaos Testing: Kế Hoạch “Tra Tấn” Bot Trước Khi Go-Live
Một con Bot chạy tốt trên Backtest 5 năm chưa chắc đã sống sót được 1 tuần trên VPS.
Tại sao? Vì Backtest là môi trường Sạch (Clean Room): Không delay, không ngắt mạng, không trượt giá.
Để đạt chuẩn công nghiệp, Robot V5 phải vượt qua 2 bài kiểm tra tàn khốc: Stress Test và Chaos Test.
1. Stress Test (Kiểm Tra Gánh Nặng)
Mục đích: Xem Bot xử lý được bao nhiêu dữ liệu cùng lúc.
- Dữ liệu: Tick Data (Every tick) của năm biến động nhất (Ví dụ 2020 Covid hoặc 2022 War).
- Tốc độ: Chớp nhoáng.
- Thử thách:
- Mở hàng trăm lệnh cùng lúc (Grid dày đặc).
- Xem RAM có bị tràn không? (Memory Leak).
- Xem Cache
CInventory có hoạt động đúng không hay làm treo Bot?
Nếu Bot chạy ì ạch, đơ máy -> Trượt (Fail). Cần tối ưu lại Code.
2. Chaos Test (Thử Nghiệm Hỗn Loạn) – Mô Phỏng Sự Cố
Lấy cảm hứng từ Chaos Monkey của Netflix. Chúng ta sẽ cố tình phá hoại khi Bot đang chạy.
Kịch bản 1: Mất Mạng Giả Lập
– Viết code chèn vào class CExecution:
if (MathRand() % 100 < 20) return false; // 20% cơ hội giả vờ mất mạng
- Xem Bot có Retry đúng 5 lần không? Hay Retry vô tận?
Kịch bản 2: Restart Đột Ngột
– Khi Bot đang gồng lỗ chùm 10 lệnh -> Tắt ngang Terminal MT5.
– Bật lại -> Xem CStateEngine và SQLite có khôi phục lại đúng trạng thái không? Hay Bot lại mở thêm 10 lệnh mới (thảm họa)?
Kịch bản 3: Sàn Chơi Xấu (Slippage)
– Giả lập độ trượt giá 50 Points khi vào lệnh. Xem cơ chế Slippage Control có chặn lệnh lại không?
3. Tiêu Chí Đạt (Pass Criteria)
- Không mất tiền oan (do vào lệnh đúp).
- Không crash phần mềm.
- Log ghi lại đầy đủ sự cố.
Chỉ khi vượt qua “Địa ngục” này, Bot V5 mới xứng đáng được nạp tiền thật (Real Money).
👉 Tiếp theo: Bài cuối cùng – Những nguyên tắc an toàn cốt lõi để bảo vệ dòng code khỏi những lỗi ngu ngốc. Xem ngay: Sanity Checks: Những Bẫy Lỗi Toán Học Cần Tránh Tuyệt Đối