MQL4 và MQL5 là gì
MQL (MetaQuotes Language) là ngôn ngữ lập trình do MetaQuotes, hãng làm ra MetaTrader, phát triển. MQL4 là ngôn ngữ lập trình của MT4. MQL5 là ngôn ngữ của MT5. Cú pháp của cả MQL4 và MQL5 gần giống C++.
Code được viết trong MetaEditor, trình soạn thảo đi kèm MetaTrader. Bạn viết mã nguồn, bấm biên dịch (compile), và MetaEditor tạo ra tệp mà terminal chạy được.
Có các loại chương trình chính:
- Expert Advisor (EA): chương trình gắn vào biểu đồ, chạy theo từng tick giá và có thể mở, sửa, đóng lệnh.
- Custom indicator (chỉ báo tùy chỉnh): tính toán và vẽ lên biểu đồ, không đặt lệnh.
- Script: chạy một lần rồi dừng, ví dụ đóng tất cả lệnh đang mở.
- Service (chỉ có trên MT5): chạy nền, không gắn với biểu đồ nào.
Sẵn sàng thử trên tài khoản thật hoặc demo?
Liên kết đối tác · giao dịch có rủi ro thua lỗ cao
Khác biệt giữa MQL4 và MQL5
| Tiêu chí | MQL4 | MQL5 |
|---|---|---|
| Nền tảng | MT4 | MT5 |
| Mô hình giao dịch | Làm việc trực tiếp với lệnh (order) | Tách riêng lệnh (order), giao dịch khớp (deal) và vị thế (position) |
| Chế độ tài khoản | Hedging | Netting hoặc Hedging, xem Hedging và Netting MT5 |
| Lập trình hướng đối tượng | Có, ở mức cơ bản | Đầy đủ hơn, có thư viện chuẩn (ví dụ lớp CTrade) |
| Kiểm thử | Strategy Tester của MT4 | Strategy Tester của MT5, hỗ trợ kiểm thử nhiều cặp tiền |
Code MQL4 không chạy trực tiếp trên MT5 và ngược lại. Muốn chuyển, phải viết lại phần đặt lệnh và phần lấy dữ liệu chỉ báo. So sánh chung giữa hai nền tảng có ở MT4 so với MT5.
Người mới có thể tự động hóa gì
Không cần bắt đầu bằng một hệ thống giao dịch tự động hoàn chỉnh. Những việc nhỏ, dễ kiểm tra thường hữu ích hơn:
- Cảnh báo khi giá chạm mức bạn đặt hoặc khi chỉ báo cắt nhau.
- Tự gắn stop loss và take profit cho lệnh mở tay.
- Tính khối lượng lệnh theo mức rủi ro bạn chọn và khoảng cách stop loss.
- Đóng tất cả lệnh hoặc chỉ các lệnh của một mã bằng một script.
- Ghi nhật ký lệnh ra tệp để xem lại.
- Vẽ chỉ báo riêng mà MetaTrader không có sẵn.
Lộ trình học
- Nắm kiến thức nền: biến, kiểu dữ liệu, điều kiện, vòng lặp, hàm. Đồng thời hiểu rõ pip, spread, margin, stop-out, xem Thuật ngữ tài chính.
- Làm quen MetaEditor: mở từ menu Công cụ (Tools) của MetaTrader hoặc nút IDE trên thanh công cụ. Tài liệu tham khảo MQL có sẵn trong mục Trợ giúp.
- Viết script đơn giản: in thông tin tài khoản, giá Bid/Ask ra tab Experts.
- Viết chỉ báo: học cách đọc dữ liệu nến và vẽ đường. Cách cài chỉ báo vào terminal: Cài indicator tùy chỉnh.
- Viết EA đầu tiên, chạy trên tài khoản demo.
- Kiểm thử bằng Strategy Tester, sau đó chạy tiếp trên demo để so sánh với kết quả backtest.
Viết EA MT5: các bước cơ bản
- Trong MetaEditor, chọn New, rồi chọn Expert Advisor trong MQL Wizard.
- Đặt tên, MetaEditor tạo khung với các hàm
OnInit(chạy khi gắn EA),OnDeinit(khi gỡ EA) vàOnTick(mỗi khi có giá mới). - Viết logic trong
OnTick, dùng lớpCTradeđể gửi lệnh. - Bấm Compile, sửa hết lỗi ở tab Errors.
- Trong MetaTrader, EA xuất hiện ở cửa sổ Navigator. Kéo vào biểu đồ và bật nút Algo Trading.
Hướng dẫn chi tiết phần cài đặt: Cài đặt EA. Nếu EA không chạy, xem tab Experts và Journal hoặc trang Lỗi MetaTrader thường gặp. Điều kiện cụ thể của từng broker như mã giao dịch hay giờ giao dịch cần kiểm tra trong khu vực cá nhân hoặc trên trang chính thức của broker.
Rủi ro khi sao chép code
- Code độc hại: EA hoặc chỉ báo yêu cầu cho phép DLL có thể chạy mã bên ngoài MetaTrader. Không cho phép DLL với tệp không rõ nguồn gốc.
- Tệp chỉ có bản biên dịch: bạn không đọc được logic bên trong, không biết EA làm gì với tài khoản.
- Chỉ báo vẽ lại (repaint): tín hiệu cũ thay đổi sau khi có nến mới, làm lịch sử trông đẹp hơn thực tế.
- Backtest quá khớp (overfitting): tham số được chỉnh để đẹp với dữ liệu cũ, không có nghĩa sẽ giống vậy với dữ liệu mới.
- Gấp thếp (martingale), lưới lệnh (grid) không stop loss: có thể chạy ổn lâu rồi mất phần lớn vốn trong một đợt biến động.
- Thiếu xử lý lỗi: không kiểm tra lệnh bị từ chối, requote, mất kết nối.
EA không loại bỏ rủi ro. Giao dịch forex và CFD có đòn bẩy có thể làm mất tiền rất nhanh, và EA chạy sai còn có thể làm điều đó nhanh hơn người. Đọc thêm Quản lý rủi ro.
Câu hỏi thường gặp
MQL5 là gì, có khó hơn MQL4 không?
MQL5 là ngôn ngữ lập trình của MT5. Phần đặt lệnh chi tiết hơn MQL4 vì tách order, deal và position, nhưng thư viện chuẩn giúp viết gọn hơn.
Ngôn ngữ lập trình MT4 có dùng được trên MT5 không?
Không trực tiếp. Code MQL4 phải được viết lại, nhất là phần giao dịch và chỉ báo.
Không biết lập trình có viết EA được không?
MQL Wizard tạo được khung EA, nhưng để hiểu và kiểm soát EA bạn vẫn cần học kiến thức lập trình cơ bản.
Backtest tốt có nghĩa là EA sẽ có lãi không?
Không. Backtest chỉ cho thấy kết quả trên dữ liệu quá khứ trong điều kiện mô phỏng. Kết quả thực tế có thể khác và có thể lỗ.
Có nên mua EA trên mạng không?
Trang này không khuyến nghị mua hay dùng EA nào. Nếu dùng code của người khác, hãy ưu tiên mã nguồn đọc được, không cho phép DLL lạ và chạy thử trên demo trước.
