Blog

EA trên VPS tự dừng: 7 nguyên nhân và cách phát hiện trước khi mất lệnh

2026-09-06

"Bot chạy ngon cả tuần, hôm nay mở lên không có lệnh nào từ thứ Ba." Ai chạy EA trên VPS cũng gặp câu này ít nhất một lần. Vấn đề không phải EA tệ, mà là không có gì báo cho bạn lúc nó dừng. Dưới đây là 7 nguyên nhân theo thứ tự hay gặp, dấu hiệu nhận biết trong log, và cách biết ngay trong vài phút thay vì vài ngày.

Dòng thời gian VPS mất kết nối lúc 03:14 và được watchdog dựng lại lúc 03:16
Khác biệt giữa biết lúc 09:00 và biết lúc 03:16 là có thứ gì đó ngoài bạn đang canh.

1. VPS khởi động lại, MT5 không tự mở

Dấu hiệu: Event Viewer có bản ghi khởi động; thư mục Logs của terminal dừng đột ngột vào một giờ lẻ (thường 3–5h sáng, giờ Windows Update). Nguyên nhân: Windows Update tự khởi động lại, hoặc nhà cung cấp VPS bảo trì. Sửa: đặt terminal chạy bằng Task Scheduler (trigger "At startup", chạy kể cả khi chưa đăng nhập), hoãn Windows Update, và đặt Active Hours trùng giờ thị trường.

2. AutoTrading tắt sau khi terminal khởi động lại

Dấu hiệu: nút AutoTrading trên thanh công cụ màu đỏ; log Experts có dòng automated trading is disabled. Nguyên nhân: tuỳ chọn "Allow automated trading" trong Tools → Options → Expert Advisors chưa bật, hoặc EA có tham số "Allow live trading" tắt. Sửa: bật cả hai, lưu profile, rồi mở lại terminal để chắc chắn nó nhớ.

3. Mất kết nối broker, terminal vẫn mở

Dấu hiệu: góc dưới phải hiện "No connection" hoặc "Invalid account"; log Journal có connection to ... failed lặp lại. Nguyên nhân: broker đổi server, mật khẩu đổi, hoặc VPS bị đổi IP và broker chặn. Sửa: đăng nhập lại; với "Invalid account" gần như chắc chắn mật khẩu đã đổi. Lỗi này nguy hiểm vì EA vẫn "chạy" và bạn vẫn thấy chart.

4. WebRequest bị chặn

Dấu hiệu: log Experts có WebRequest error 4014 hoặc URL is not allowed. Nguyên nhân: EA gọi API ngoài (tin tức, tín hiệu, license check) nhưng URL chưa nằm trong danh sách cho phép. Sửa: Options → Expert Advisors → Allow WebRequest for listed URL, thêm đúng URL kể cả https. Sau khi thêm phải khởi động lại EA.

5. Hết margin hoặc lỗi lệnh liên tiếp

Dấu hiệu: log có not enough money, market closed, invalid volume, trade context busy. Nguyên nhân: tài khoản không đủ ký quỹ, lot vượt giới hạn symbol, hoặc EA gửi lệnh quá nhanh. Sửa: tuỳ lỗi, nhưng điểm chung là EA vẫn sống và vẫn thử, chỉ là không thành công. Nếu chỉ đếm "EA còn gắn trên chart" thì bạn sẽ không bao giờ phát hiện.

6. Terminal treo vì hết RAM

Dấu hiệu: terminal không phản hồi, Task Manager thấy RAM 90%+, chart không cập nhật giá dù có kết nối. Nguyên nhân: quá nhiều terminal hoặc chart trên một VPS nhỏ; xem bài chạy nhiều MT5 trên một VPS. Sửa: giảm "Max bars in chart", bớt indicator, hoặc nâng RAM. Terminal treo không tự hết; phải kill và mở lại.

7. EA bị gỡ khỏi chart

Dấu hiệu: góc trên phải chart không còn tên EA; log Experts có removed hoặc deinit reason. Nguyên nhân: đổi timeframe với EA không hỗ trợ, đổi template, hoặc terminal mở lại với profile khác. Sửa: gắn lại và lưu profile (File → Profiles → Save As), vì terminal mở lại theo profile cuối.

Ba lớp giám sát: tiến trình, kết nối, heartbeat của EA
Cả 7 lỗi đều bị bắt bởi một trong ba lớp này.

Cách phát hiện trong 5 phút thay vì 5 ngày

Bảy lỗi trên có một điểm chung: tiến trình MT5 tồn tại không nói lên gì cả. Giám sát đúng cần ba lớp:

  1. Tiến trình: terminal64.exe có đang chạy trong thư mục đó không? Không có thì mở lại.
  2. Kết nối: terminal có nối được broker không? Có thể đọc từ log Journal hoặc từ EA (TerminalInfoInteger(TERMINAL_CONNECTED)).
  3. Heartbeat của EA: EA ghi thời điểm mỗi phút vào một file. File cũ hơn 3–5 phút nghĩa là EA dừng, dù vì lý do gì trong 7 lý do trên.

Tự làm: một script PowerShell chạy theo lịch, kiểm tra ba thứ đó cho từng thư mục terminal, gửi Telegram khi có vấn đề, mở lại terminal khi tiến trình biến mất. Làm đúng mất một buổi chiều, và bạn phải nhớ kiểm tra chính script đó còn chạy không.

Hoặc dùng một agent làm sẵn: AutoBotCenter cài một agent lên mỗi VPS, agent làm đúng ba lớp trên cho mọi terminal (kể cả terminal bạn tự mở), tự dựng lại terminal chết, và gom trạng thái của tất cả VPS về một dashboard với cảnh báo Telegram. Bạn vẫn dùng VPS và EA của mình; chỉ khác là lúc bot dừng, bạn biết sau vài phút.

Muốn khỏi mở RDP từng máy?

AutoBotCenter gom mọi VPS, MT5 và EA của bạn về một dashboard: watchdog tự dựng MT5 chết, cài EA từ xa, cảnh báo Telegram. Gói Free đủ chạy 1 VPS, không cần thẻ.

Dùng thử miễn phí

Bài liên quan

Tự khởi động lại MT5 khi treo: dựng watchdog cho terminal trên VPS

Watchdog quyết định một terminal MT5 đã chết dựa trên ba phép thử (tiến trình đúng thư mục, kết nối broker, heartbeat của EA), kèm script PowerShell 40 dòng chạy mỗi 5 phút bằng Task Scheduler, những chỗ nó mù, và khi nào nên thay bằng agent.

Giám sát VPS MT5: cần theo dõi gì, kiểm tra thế nào, và tự động hoá đến đâu

Cách giám sát MetaTrader 5 trên VPS: 5 tín hiệu báo trước bot sắp chết, cách đọc từng tín hiệu từ log hoặc script, ngưỡng cảnh báo, và điểm mà watchdog + cảnh báo Telegram thay thế việc mở RDP.

VPS tích hợp của MetaTrader và VPS riêng: EA của bạn thật sự cần cái nào

Hosting của MetaQuotes chỉ một cú bấm và ping rất thấp, nhưng chỉ chạy một terminal, giấu máy đi và không script được. So sánh thẳng với thuê VPS Windows riêng, kèm các trường hợp mỗi bên là lựa chọn đúng.

Quản lý nhiều tài khoản MT5: một màn hình cho mọi terminal, EA và VPS

MetaTrader 5 chỉ giữ một tài khoản cho mỗi terminal, nên quản lý mười tài khoản là bài toán kiểm kê chứ không phải bài toán giao dịch. Cái gì gãy ở mốc 5, 20 và 100 tài khoản, những cột thật sự cần trên một màn hình, một VPS chứa được bao nhiêu terminal, và thứ tự nên tự động hoá.