Nội dung giáo dục. Bài viết này định nghĩa Expert Advisor và giải thích cách giao dịch tự động hoạt động trong MetaTrader 5, sử dụng các số liệu từ feed Vanto. Bài viết không cấu thành tư vấn đầu tư hay khuyến nghị bất kỳ EA nào. Giao dịch CFD mang rủi ro thua lỗ đáng kể và có thể không phù hợp với tất cả nhà đầu tư.
Expert Advisor (EA) là chương trình chạy trong terminal MetaTrader 5 và giao dịch theo quy tắc: nó đọc dữ liệu thị trường trên biểu đồ, áp dụng mã của mình rồi tự động gửi, sửa hoặc đóng lệnh. EA được viết bằng ngôn ngữ MQL5 và chỉ hoạt động khi terminal đang chạy. EA tuân theo quy tắc của mình một cách chính xác, kể cả những quy tắc tồi.
Bài viết này giải thích EA là gì, khác gì so với chỉ báo và script, cách nó chạy, các giới hạn định hình nó và những kiểu thất bại quan trọng đối với rủi ro. Các con số là số học và dữ liệu feed, không phải dự báo.
Expert Advisor Trong MetaTrader 5 Là Gì?
Expert Advisor là chương trình giao dịch tự động gắn vào một biểu đồ duy nhất trong MetaTrader 5, được viết bằng MQL5 và biên dịch thành tệp có đuôi .ex5. Tên gọi đến từ MetaTrader: EA là "chuyên gia" theo nghĩa nó áp dụng một quy trình cố định, chứ không phải nó có khả năng phán đoán.
EA phản ứng với các sự kiện. Terminal gọi mã của nó khi có tick giá mới, khi bộ hẹn giờ kích hoạt, khi một giao dịch được thực hiện hoặc khi có sự kiện trên biểu đồ. Trong mỗi lần gọi, chương trình có thể đọc tài khoản, kiểm tra các vị thế đang mở và gửi yêu cầu giao dịch đến máy chủ. Nền tảng, các ký hiệu và các chế độ tài khoản được mô tả trong hedging vs netting trong MT5.
Hai điểm xác định khái niệm này:
- Nó hành động, không chỉ hiển thị. Chỉ báo vẽ một đường; EA có thể giao dịch dựa trên đường đó.
- Nó gắn với một biểu đồ và một ký hiệu. Một phiên bản EA chạy trên một biểu đồ. Để giao dịch năm ký hiệu với cùng logic, nhà giao dịch gắn nó năm lần, hoặc dùng một EA được viết để xử lý nhiều ký hiệu.
Expert Advisor, Chỉ Báo và Script: Khác Nhau Thế Nào?
EA tự giao dịch lặp đi lặp lại, script chạy một lần rồi dừng, còn chỉ báo tính toán và vẽ nhưng không thể đặt lệnh. Cả ba đều là chương trình MQL5, và chúng hay bị nhầm lẫn vì nằm trong cùng một bảng Navigator.
| Loại chương trình | Chức năng | Chạy | Có thể gửi lệnh |
|---|---|---|---|
| Expert Advisor | Đọc dữ liệu, áp dụng quy tắc, quản lý vị thế | Liên tục, ở mọi sự kiện, cho đến khi bị gỡ | Có |
| Script | Thực hiện một tác vụ, chẳng hạn đóng tất cả vị thế | Một lần, rồi kết thúc | Có |
| Chỉ báo | Tính giá trị và vẽ lên biểu đồ | Liên tục, khi giá cập nhật | Không |
Sự khác biệt này quan trọng trong thực tế. Script đóng tất cả lệnh là một hành động một lần. EA đóng tất cả lệnh rồi mở lệnh mới là một chiến lược. Chỉ báo đường trung bình động hiển thị một con số; EA mua khi giá cắt qua nó là một quy tắc có hệ quả.
EA Hoạt Động Từng Bước Như Thế Nào?
EA tuân theo một vòng lặp: nhận một sự kiện, đọc trạng thái của thị trường và tài khoản, kiểm tra các điều kiện, và gửi yêu cầu giao dịch nếu một điều kiện đúng. Không có gì trong vòng lặp là tùy ý.
Một EA đơn giản, viết ra bằng các bước thông thường:
- Một tick mới đến cho EURUSD.
- EA đọc giá và, chẳng hạn, hai giá đóng cửa gần nhất của một đường trung bình động.
- Nó kiểm tra xem đã có vị thế chưa, dùng danh sách vị thế chứ không dùng bộ nhớ.
- Nếu điều kiện vào lệnh đúng và chưa có vị thế, nó tính kích thước lot.
- Nó gửi lệnh thị trường kèm stop-loss và take-profit.
- Máy chủ trả lời: đã khớp, bị từ chối, hoặc khớp ở giá khác. EA phải xử lý từng câu trả lời.
Bước 6 là nơi nhiều chương trình thất bại. Giá gửi đi và giá khớp có thể khác nhau, đó là trượt giá mà mọi lệnh thị trường đều mang theo. Một EA không kiểm tra câu trả lời có thể tin rằng một vị thế đang mở trong khi yêu cầu đã bị từ chối.
EA Cần Gì Để Chạy?
EA chỉ chạy khi bốn điều kiện cùng đúng một lúc: terminal đang mở, nó được kết nối với máy chủ, giao dịch tự động được bật trong terminal, và chính EA được phép giao dịch trong phần cài đặt của nó. Thiếu bất kỳ điều kiện nào cũng khiến EA không giao dịch được.
| Yêu cầu | Điều gì xảy ra nếu thiếu |
|---|---|
| Terminal mở trên một máy tính | EA dừng khi terminal đóng hoặc máy tính chuyển sang chế độ ngủ |
| Kết nối với máy chủ giao dịch | EA không thể đọc giá hoặc gửi lệnh; các vị thế đang mở vẫn nằm trên máy chủ |
| Nút AutoTrading trên thanh công cụ được bật (cách diễn đạt trong phần trợ giúp MetaTrader 5) | EA được tải nhưng không được phép giao dịch |
| Quyền giao dịch được đánh dấu trong thuộc tính riêng của EA | Riêng EA đó không giao dịch, dù các EA khác vẫn giao dịch |
Các vị thế do EA mở thuộc về tài khoản, không thuộc về chương trình. Khi EA dừng, các vị thế vẫn mở và mức stop-loss, take-profit của chúng vẫn nằm trên máy chủ. Broker cũng có thể tắt giao dịch tự động cho một tài khoản trên máy chủ giao dịch (tài liệu MQL5, quyền giao dịch). Thứ dừng lại khi EA dừng là mọi hoạt động quản lý do chính EA thực hiện, chẳng hạn một lệnh bám theo giá mà mã đã dời. Đây là cùng sự phụ thuộc vào terminal đã được mô tả cho trailing stop.
Những nhà giao dịch cần chiến lược chạy cả ngày thường đặt terminal trên một máy chủ ảo riêng (VPS), để EA tiếp tục khi máy tính ở nhà tắt. Vanto mô tả điều này trên trang Forex VPS. Nó chỉ giải quyết vấn đề thời gian hoạt động; nó không thay đổi những gì EA làm.
EA Phải Tuân Theo Giới Hạn Nào? Kích Thước Lot và Quy Tắc Ký Hiệu
EA phải tuân theo cùng các quy tắc đặt lệnh như con người: khối lượng tối thiểu, bước khối lượng và khối lượng tối đa của từng ký hiệu, cùng kích thước hợp đồng biến lot thành mức phơi nhiễm. Lệnh nằm ngoài các giới hạn này sẽ bị từ chối, và mã phải kiểm tra chúng cho mọi ký hiệu mà nó giao dịch.
Bảng dưới đây lấy từ feed Vanto. Giá trị danh nghĩa của lệnh tối thiểu là khối lượng tối thiểu nhân với kích thước hợp đồng.
| Ký hiệu | Kích thước hợp đồng | Khối lượng tối thiểu | Bước khối lượng | Khối lượng tối đa | Giá trị danh nghĩa ở mức tối thiểu |
|---|---|---|---|---|---|
| EURUSD | 100,000 EUR | 0.01 | 0.01 | 200 | 1,000 EUR |
| USDJPY | 100,000 USD | 0.01 | 0.01 | 200 | 1,000 USD |
| XAUUSD | 100 oz | 0.01 | 0.01 | 20 | 1 oz |
| UKOIL | 100 bbl | 0.1 | 0.1 | 100 | 10 bbl |
| US30 | 1 | 0.01 | 0.01 | 100 | 0.01 đơn vị chỉ số |
| BTCUSD | 1 BTC | 0.01 | 0.01 | 5 | 0.01 BTC |
Nguồn: ảnh chụp feed Vanto, ngày 10 tháng 10 năm 2026. Kích thước hợp đồng và giới hạn khối lượng có thể thay đổi; hãy kiểm tra thông số hiện hành.
Có hai hệ quả. Thứ nhất, một EA được viết với bước lot cố định 0.01 sẽ gửi kích thước không hợp lệ trên UKOIL, nơi bước là 0.1. Thứ hai, cùng một số lot có mức phơi nhiễm khác nhau trên mỗi ký hiệu, đó là lý do thiết lập "0.1 lot" sao chép từ một EA forex sang vàng làm thay đổi rủi ro. Kích thước hợp đồng và tác động của nó được trình bày trong kích thước hợp đồng trong giao dịch là gì, và lệnh tối thiểu trong kích thước lot tối thiểu trong giao dịch là gì.
EA Xác Định Kích Thước Lệnh Như Thế Nào? Một Ví Dụ Tính Toán
Hầu hết EA dùng một trong hai phương pháp định kích thước: lot cố định, hoặc lot được tính từ số tiền nhà giao dịch sẵn sàng thua trong lệnh. Phương pháp thứ hai cần khoảng cách stop và giá trị của một pip.
Trên EURUSD, một pip trên 1 lot trị giá USD 10 (100,000 x 0.0001). Lấy tài khoản USD 5,000, rủi ro 1% mỗi lệnh và stop-loss 25 pip:
- Số tiền rủi ro: 5,000 x 0.01 = USD 50
- Rủi ro mỗi lot: 25 pip x USD 10 = USD 250
- Kích thước lot: 50 / 250 = 0.20 lot
Với lot cố định 0.20, cùng stop 25 pip luôn rủi ro USD 50 khi tài khoản là USD 5,000, nhưng rủi ro là 1.5% sau khi tài khoản giảm còn USD 3,333 và 0.7% sau khi tăng lên USD 7,143. Phương pháp tính toán giữ phần trăm không đổi bằng cách thay đổi lot; phương pháp cố định giữ lot không đổi và để phần trăm trôi. Mối quan hệ giữa stop và lợi nhuận mục tiêu nằm trong tỷ lệ rủi ro lợi nhuận là gì.
Nếu lot tính được không phải bội số của bước khối lượng, EA phải làm tròn xuống theo bước, nếu không lệnh sẽ bị từ chối. Việc làm tròn làm thay đổi rủi ro đôi chút, điều mà một backtest trên bước lớn hơn có thể không cho thấy.
Backtest Cho Thấy Gì, và Bỏ Sót Gì?
Backtest chạy EA trên lịch sử giá đã lưu trong Strategy Tester của MT5 và báo cáo những gì nó sẽ làm, nên nó kiểm tra logic với quá khứ nhưng không chứng minh được điều gì về tương lai. Kết quả phụ thuộc vào chất lượng dữ liệu và các chi phí mà bài kiểm tra giả định.
Những khoảng cách thường gặp giữa bài kiểm tra và giao dịch thực:
- Spread. Bài kiểm tra dùng spread mô phỏng. Spread thực nới rộng quanh tin tức và lúc rollover, như được mô tả trong spread trong giao dịch là gì.
- Trượt giá và từ chối lệnh. Tester có thể mô phỏng độ trễ thực thi (trợ giúp MetaTrader 5, Strategy Tester), nhưng lệnh thực khớp với thanh khoản thật và có thể khớp ở giá khác hoặc không khớp.
- Swap. EA giữ vị thế qua đêm trả hoặc nhận swap, với phí gấp ba vào một ngày trong tuần, và swap trong bài kiểm tra có thể không khớp với mức hiện tại của tài khoản; xem swap trong giao dịch là gì.
- Quá khớp (overfitting). EA được tinh chỉnh cho đến khi khớp với một giai đoạn lịch sử có thể trông xuất sắc ở đó và thất bại trên dữ liệu mới, vì nó đã học nhiễu của giai đoạn ấy.
Backtest là bài kiểm tra áp lực cho mã, và hữu ích để tìm lỗi. Là bằng chứng cho lợi nhuận tương lai thì nó yếu, và nhà giao dịch coi nó là bằng chứng sẽ chấp nhận rủi ro nhiều hơn báo cáo cho thấy.
Khi Nào EA Thất Bại? Những Lỗi Thường Gặp
EA thất bại theo những cách có thể đoán trước, và phần lớn đến từ quy tắc, không phải từ công nghệ. Bốn lỗi đầu dưới đây là những lỗi gây thua lỗ lớn nhất.
1. Nhân đôi sau các lệnh thua. Các quy tắc tăng lot sau mỗi lệnh thua (martingale) dựa vào việc một lệnh thắng xuất hiện trước khi tài khoản cạn. Bắt đầu từ 0.01 lot và nhân đôi sau mỗi lệnh thua, lot ở lệnh thứ mười là 0.01 x 2^9 = 5.12 lot, và mười lệnh cộng lại dùng 0.01 x (2^10 - 1) = 10.23 lot. Nếu mỗi lệnh thua 20 pip trên EURUSD, khoản lỗ tích lũy là 10.23 x 20 x USD 10 = USD 2,046, từ một lệnh đầu tiên chỉ rủi ro USD 2. Chuỗi này cũng làm tăng ký quỹ đã dùng ở mỗi bước, kéo stop-out lại gần hơn; các mức được nêu trong mức stop-out trong giao dịch là gì và cơ chế ký quỹ trong ký quỹ trong giao dịch là gì.
2. Trung bình giá xuống không giới hạn. EA liên tục thêm vào một vị thế đang lỗ thì không có điểm dừng. Cảnh báo tương tự áp dụng cho các EA lưới và EA chia nhỏ vị thế được đề cập trong scale trading.
3. Không có stop-loss trong mã. Chương trình chỉ đóng lệnh theo tín hiệu của chính nó phụ thuộc vào terminal và kết nối để làm việc đó. Stop-loss đặt trên máy chủ vẫn tồn tại khi mất kết nối.
4. Giả định một vị thế cho mỗi ký hiệu. Tài khoản ở chế độ hedging có thể giữ nhiều vị thế trên một ký hiệu, và mã viết cho netting có thể mở một vị thế ngược chiều khi nó định đóng một vị thế. Chi tiết nằm trong hedging vs netting trong MT5.
5. Chạy không giám sát qua tin tức. Quanh các công bố lớn, spread nới rộng và trượt giá tăng. EA không biết một công bố sắp đến trừ khi nó được viết để kiểm tra lịch.
6. Bỏ qua đòn bẩy. Đòn bẩy khuếch đại thua lỗ cũng như lợi nhuận, và EA định kích thước lot mà không đọc ký quỹ khả dụng có thể mở mức phơi nhiễm nhiều hơn tài khoản chịu nổi. Theo từng lớp tài sản, đòn bẩy tối đa khác nhau: 1:500 cho forex và kim loại, 1:100 cho chỉ số và năng lượng, 1:10 cho tiền mã hóa. Margin call ở mức 100% và stop-out ở mức 50%.
EA Đến Từ Đâu?
EA đến từ ba nguồn: nhà giao dịch tự viết mã, mua hoặc tải một chương trình có sẵn, hoặc đặt một nhà phát triển làm. Mỗi nguồn có một rủi ro khác nhau, và nền tảng không thẩm định chiến lược trong bất kỳ nguồn nào.
| Nguồn | Bạn nhận được gì | Rủi ro chính |
|---|---|---|
| Tự viết trong MetaEditor | Toàn quyền kiểm soát quy tắc và mã nguồn | Lỗi, và thời gian học MQL5 |
| Marketplace hoặc tải về | Tệp .ex5 đã biên dịch, đôi khi không có mã nguồn | Kết quả của nhà cung cấp không được xác minh độc lập |
| Nhà phát triển freelance | Mã tùy chỉnh theo đặc tả | Chất lượng khác nhau; đặc tả phải bao gồm xử lý lỗi |
Tệp đã biên dịch không có mã nguồn thì không thể kiểm tra. Nhà giao dịch chạy nó không thể thấy nó có dùng stop-loss không, có nhân đôi sau các lệnh thua không hay có bỏ qua chế độ tài khoản không. Đọc mô tả các quy tắc và thử trước trên tài khoản demo là mức tối thiểu.
Vanto không cung cấp EA. Trên MT5, nền tảng cho phép EA, và hedging được cho phép trên tài khoản; chiến lược, mã nguồn và rủi ro của nó thuộc về nhà giao dịch. Một chiến lược có phù hợp với một tài khoản cụ thể hay không là quyết định của nhà giao dịch, và một EA chưa được thử trong điều kiện thực với kích thước nhỏ là chưa được kiểm chứng.
Tính Các Con Số Trước Khi Tự Động Hóa
Trước khi chạy EA, hãy tính một lệnh và một chuỗi thua tốn bao nhiêu ở kích thước lot mà nó sẽ dùng. Máy tính giao dịch của Vanto cho biết giá trị pip, ký quỹ và giá trị danh nghĩa cho từng ký hiệu trong feed, để thiết lập lot trong EA có thể được đối chiếu với số tiền nhà giao dịch sẵn sàng thua.
Câu Hỏi Thường Gặp
Expert Advisor có giống robot hay bot giao dịch không?
Có, trong cách dùng hằng ngày. "Robot", "bot" và "EA" đều chỉ một chương trình tự động giao dịch theo quy tắc. "Expert Advisor" là thuật ngữ của MetaTrader, và nó chỉ riêng chương trình gắn vào biểu đồ trong MT4 hoặc MT5.
EA có tự kiếm tiền không?
Không. EA thực thi các quy tắc đã được giao, và kết quả phụ thuộc vào các quy tắc đó, chi phí và điều kiện thị trường. Nó có thể thua nhanh như khi nó có thể lãi, và một chiến lược chạy tốt trong backtest có thể thất bại khi chạy thực.
EA có thể giao dịch khi máy tính của tôi tắt không?
Chỉ khi terminal đang chạy ở nơi khác, ví dụ trên một máy chủ ảo riêng. Các mức stop-loss và take-profit đã đặt trên vị thế đang mở vẫn nằm trên máy chủ, nhưng mọi logic do chính EA thực hiện sẽ dừng khi terminal đóng.
Expert Advisor được viết bằng ngôn ngữ nào?
EA của MetaTrader 5 được viết bằng MQL5, một ngôn ngữ giống C++, trong MetaEditor đi kèm nền tảng. Chương trình đã biên dịch là tệp .ex5. MetaTrader 4 dùng ngôn ngữ cũ hơn là MQL4, và chương trình của nó không thể dùng thay thế cho MT5.
EA có hoạt động trên tài khoản hedging không?
Có, nhưng mã phải được viết cho chế độ tài khoản. Ở chế độ hedging, một ký hiệu có thể giữ nhiều vị thế, nên EA chỉ chọn vị thế theo tên ký hiệu có thể quản lý nhầm vị thế. Một EA vững chắc đọc chế độ tài khoản khi khởi động.
Có an toàn khi dùng EA ngay trên tài khoản thực không?
An toàn hơn là bắt đầu trên tài khoản demo rồi chạy thực với kích thước lot nhỏ. Chạy demo cho thấy EA hành xử thế nào với spread, trượt giá và từ chối lệnh thật, điều mà backtest không tái tạo, dù khớp lệnh demo vẫn không giống hệt khớp lệnh thực.
Cảnh báo rủi ro. Giao dịch chứng khoán, hợp đồng tương lai, quyền chọn và hợp đồng chênh lệch là những công cụ tài chính phức tạp đòi hỏi kiến thức và sự hiểu biết. Giá có thể dao động đáng kể và chứng khoán có thể trở nên vô giá trị. Nhà đầu tư có thể chịu những khoản lỗ vượt quá tiềm năng lợi nhuận. Giao dịch trên ký quỹ có thể dẫn đến những khoản lỗ lớn hơn số tiền ban đầu được gửi. Hiệu suất trong quá khứ không nhất thiết là chỉ dẫn cho hiệu suất tương lai. Thông tin trong bài viết này chỉ nhằm mục đích giáo dục và không cấu thành tư vấn đầu tư, khuyến nghị, hay lời chào mua bán bất kỳ công cụ tài chính nào. Hãy cân nhắc xem giao dịch CFD có phù hợp với hoàn cảnh của bạn hay không và tìm kiếm tư vấn độc lập nếu cần thiết.