Bot forex trên MT5: từ Expert Advisor đầu tiên tới chạy thật

ForexCập nhật 13/09/2026

MT5 cho sẵn môi trường backtest và chạy bot mà không phải dựng gì. Chính sự tiện lợi đó tạo ra một thị trường EA chắc thắng đầy rẫy, và một cái bẫy rất dễ sập.

Bot forex phổ biến sớm hơn bot ở các thị trường khác, vì MetaTrader cho sẵn cả môi trường lập trình, backtest lẫn nơi chạy — không phải dựng gì. Bạn viết một chương trình gọi là Expert Advisor, gắn vào biểu đồ, và nó tự chạy.

Chính sự tiện lợi đó tạo ra hai thứ: một cộng đồng lớn với rất nhiều tài liệu, và một thị trường bán EA "chắc thắng" đầy rẫy. Bài này nói cả cách làm lẫn cách không bị lừa.

Expert Advisor hoạt động ra sao

EA là chương trình viết bằng MQL5, gắn vào một biểu đồ cụ thể của một cặp tiền và một khung thời gian. Nó có ba điểm vào chính: chạy một lần khi khởi động, chạy mỗi khi có giá mới về, và chạy khi dừng.

Phần lớn logic nằm ở hàm chạy mỗi khi có giá mới. Đây là điểm khác biệt đáng chú ý so với kiến trúc bot tự dựng: MT5 áp một khung sẵn, bạn viết logic vào trong khung đó.

Thuận lợi là không phải lo kết nối, xác thực, giữ phiên. Bất lợi là năm khối của một kiến trúc tốt dễ bị gộp chung vào một hàm — và đó là lý do rất nhiều EA trở thành khối mã không ai sửa nổi sau vài tháng.

Nguyên tắc vẫn giữ nguyên dù chạy trong MT5: tách hàm sinh tín hiệu khỏi hàm quyết định khối lượng, và tách cả hai khỏi phần đặt lệnh.

Ba chế độ kiểm thử và cái bẫy của chúng

Strategy Tester của MT5 có nhiều chế độ mô phỏng, và chọn sai chế độ là cách nhanh nhất tự lừa mình.

Chỉ giá mở cửa là chế độ nhanh nhất và sai nhất. Nó giả định trong cả cây nến không có gì xảy ra ngoài giá mở. Mọi chiến lược có dừng lỗ hoặc chốt lời trong nến đều cho kết quả sai — thường là sai theo hướng đẹp hơn thực tế.

Điểm kiểm soát mô phỏng dựa trên khung thời gian nhỏ hơn. Tốt hơn nhưng vẫn là xấp xỉ.

Mọi tick mô phỏng từng thay đổi giá. Chậm nhất, và là chế độ duy nhất đáng tin cho chiến lược trong ngày. Nhưng độ tin cậy phụ thuộc chất lượng dữ liệu tick bạn có — dữ liệu tick miễn phí từ sàn thường không đầy đủ.

Ngoài chế độ, có hai giả định nữa quyết định kết quả: spreadtrượt giá. Strategy Tester mặc định thường dùng spread cố định, trong khi thực tế spread giãn rộng đúng lúc tin ra — cũng là lúc nhiều chiến lược phát tín hiệu. Đặt spread giả định cao hơn mức quảng cáo của sàn là cách kiểm tra trung thực.

Vì sao phần lớn EA bán sẵn không sống nổi

Cứ tìm "EA chắc thắng" là thấy hàng trăm sản phẩm kèm đường vốn đi lên gần như thẳng. Có ba lý do kỹ thuật khiến chúng trông như vậy.

Tối ưu trên chính đoạn dữ liệu quảng cáo. Thử vài nghìn tổ hợp tham số trên ba năm dữ liệu, chọn tổ hợp đẹp nhất, rồi khoe kết quả trên đúng ba năm đó. Đây là khớp quá mức ở dạng thuần khiết nhất.

Chiến lược nhồi lệnh hoặc gấp đôi sau thua. Đường vốn cực mượt trong thời gian dài, rồi mất sạch trong một ngày. Trên biểu đồ ba năm, nếu ngày đó chưa tới thì đường vốn vẫn đẹp. Lý do vì sao cách này chắc chắn hỏng nằm ở bài về khối lượng vị thế.

Giả định chi phí lạc quan. Spread cố định thấp, không trượt giá, không phí qua đêm.

100%110%120%130%140%98%EA nhồi lệnhSụt giảm từ đỉnh (%)-33%

Hình dạng này là dấu hiệu nhận dạng rõ nhất của chiến lược giấu rủi ro: mười sáu đoạn tăng đều tăm tắp, rồi một đoạn xoá sạch. Người bán chỉ cần cắt biểu đồ trước đoạn cuối là có một sản phẩm trông hoàn hảo. Hình minh hoạ cơ chế, không phải dữ liệu thật.

Cách kiểm tra trước khi tin bất kỳ EA nào: hỏi số lệnh, hỏi kết quả walk-forward trên đoạn dữ liệu chưa dùng để tối ưu, hỏi giả định spread, và hỏi mức sụt giảm sâu nhất cùng thời gian nằm dưới đỉnh. Thiếu bất kỳ con số nào thì đường vốn chỉ là một bức tranh.

Phiên ÁLondonLondon + New YorkNew York06:0008:0010:0012:0014:0016:0018:0020:0022:00

Một EA tối ưu trên toàn bộ dữ liệu sẽ học cả những gì xảy ra trong phiên Á — nơi biên độ hẹp và spread thường rộng hơn. Nhiều chiến lược có lợi thế thật ở vùng chồng lấn London và New York nhưng mất sạch lợi thế đó trong phiên Á, và khi gộp chung thì con số tổng che mất điều này. Giới hạn EA chạy trong khung giờ có lợi thế là một trong những cải thiện đơn giản mà hiệu quả nhất.

Chạy thật: những gì MT5 không lo hộ

Khi chuyển sang tài khoản thật, ba việc trở thành của bạn.

Hạ tầng chạy liên tục. Thị trường forex mở gần như suốt năm ngày trong tuần. Máy cá nhân tắt hoặc mất mạng giữa lúc có vị thế mở là tình huống phải tránh, nên EA thường chạy trên máy chủ ảo đặt gần trung tâm khớp lệnh của sàn.

Giám sát. MT5 không tự báo cho bạn khi EA ngừng hoạt động hoặc khi có lệnh bị từ chối liên tục. Cần cơ chế cảnh báo riêng.

Khác biệt giữa tài khoản thử và tài khoản thật. Tài khoản thử thường có spread đẹp hơn và khớp lệnh hoàn hảo. Chạy thật với khối lượng nhỏ nhất trong vài tuần là cách duy nhất đo được khoảng cách giữa hai môi trường — đúng bước "tiền nhỏ" trong lộ trình đưa bot ra thị trường.

Khác biệt giữa sàn cũng là biến số

Một EA cho kết quả khác nhau trên các sàn khác nhau, và khoảng cách đó lớn hơn người mới tưởng.

Mô hình chi phí khác nhau. Có sàn spread hẹp kèm hoa hồng riêng, có sàn gộp hết vào spread. So sánh chỉ bằng con số spread quảng cáo là so sai; phải cộng cả hai lại trên cùng một khối lượng.

Cách khớp lệnh khác nhau. Có nơi khớp nội bộ, có nơi chuyển ra nhà cung cấp thanh khoản. Điều này ảnh hưởng tới trượt giá, tới việc lệnh có bị từ chối lúc biến động mạnh, và tới việc giá dừng lỗ của bạn có bị chạm bởi những nhịp giá chỉ tồn tại ở sàn đó.

Dữ liệu lịch sử khác nhau. Mỗi sàn có chuỗi giá riêng. Backtest trên dữ liệu sàn A rồi chạy thật ở sàn B là đang kiểm định trên một thị trường khác với thị trường bạn giao dịch.

Hệ quả thực tế: backtest phải chạy trên dữ liệu của chính sàn sẽ chạy thật, và mọi tham số đã tối ưu cần kiểm lại khi đổi sàn. Đây cũng là lý do những con số hiệu năng do người bán EA công bố gần như không chuyển được sang tài khoản của bạn, kể cả khi họ hoàn toàn trung thực.

Có công bố số lệnh khôngba mươi lệnh không nói lên gìkhông có → bỏ quaCó kết quả ngoài mẫu khôngđoạn chưa dùng để tối ưukhông có → bỏ quaGiả định spread bao nhiêuso với spread thật của sànquá đẹp → tính lạiĐường vốn có đoạn sụt khôngmượt tuyệt đối là dấu hiệu xấuquá mượt → nghi nhồi lệnhMới đáng chạy thử

Bốn câu hỏi này áp dụng được cho mọi hệ thống người khác chào bán, không riêng gì Expert Advisor trên MT5.

Nếu bắt đầu từ đầu

Thứ tự ít rủi ro nhất: học đủ MQL5 để tự viết một EA đơn giản, dù nó không sinh lời — mục tiêu là hiểu vòng đời và cách đặt lệnh. Backtest ở chế độ mọi tick với spread giả định xấu. Chạy song song không đặt lệnh thật đủ lâu để gặp ít nhất một đợt biến động mạnh. Rồi mới tới tiền thật, ở khối lượng nhỏ nhất.

Và nguyên tắc quan trọng nhất: đừng chạy thứ bạn không tự kiểm định được. Một EA mua về mà bạn không đọc nổi mã nguồn thì bạn không biết nó sẽ làm gì trong tình huống chưa từng gặp — và thị trường luôn tìm được tình huống đó.

Câu hỏi thường gặp

Expert Advisor là gì?
Là chương trình viết bằng MQL5 chạy bên trong MetaTrader, tự phân tích và đặt lệnh theo quy tắc đã lập trình. Nó gắn vào một biểu đồ và chạy mỗi khi có giá mới về.
Strategy Tester của MT5 có đáng tin không?
Đáng tin ở mức mô phỏng cơ học, nhưng kết quả phụ thuộc hoàn toàn vào chất lượng dữ liệu tick và giả định về spread. Chạy ở chế độ chỉ dùng giá mở cửa cho kết quả đẹp một cách sai lệch.
Có nên mua EA bán sẵn không?
Phần lớn EA bán sẵn có đường vốn đẹp vì được tối ưu tham số trên chính đoạn dữ liệu dùng để quảng cáo. Nếu người bán không công bố kết quả walk-forward, số lệnh và giả định chi phí thì đường vốn đó không nói lên gì.
VPS có bắt buộc không?
Gần như bắt buộc nếu bot cần chạy liên tục, vì máy cá nhân tắt hoặc mất mạng là bot ngừng giữa lúc đang có vị thế mở. Chọn máy chủ gần trung tâm khớp lệnh của sàn để giảm độ trễ.

Đọc tiếp