LiteFinance

Ngôn ngữ Metaquotes MQL4 và MQL5: điểm khác nhau và hướng dẫn lập trình

Ngôn ngữ MetaQuotes 4 và 5 là công cụ phát triển ứng dụng cho MetaTrader Client Terminal dựa trên các nền tảng thuộc dòng MetaTrader thế hệ thứ tư và thứ năm.

Đây là bài hướng dẫn chi tiết về lập trình MetaTrader MQL4 và MQL5. Sau khi đọc bài viết này, bạn sẽ hiểu MQL là gì, sự khác biệt giữa hai phiên bản ngôn ngữ lập trình mới nhất và cách làm việc với chúng. Tại đây bạn sẽ tìm thấy hướng dẫn chi tiết kèm theo hình ảnh về cách viết một EA. Cùng bắt đầu nào!

MQL4 và MQL5 là gì?

Ngôn ngữ MQL4 và MQL5 có nhiều điểm tương đồng. Do đó, chúng ta sẽ bàn riêng về các điểm khác biệt sau, còn hiện tại chúng ta sẽ thống nhất gọi chung cả hai là MQL và không xác định phiên bản.

MQL là ngôn ngữ lập trình được tích hợp sẵn trên nền tảng MetaTrader. Môi trường phát triển MetaQuotes Language Editor cho phép bạn viết robot giao dịch, chỉ báo hoặc các ứng dụng khác của riêng mình bằng MQL, cũng như biên dịch và gỡ lỗi cho chúng. Môi trường này được cung cấp kèm theo MetaTrader Client Terminal cùng với tất cả thông tin tham khảo.

Nếu bạn đã từng ít nhất một lần đầu tư vào tài sản nào đó, mua đô la để gửi ngân hàng chẳng hạn, thì bạn sẽ hiểu rằng việc đầu tư đòi hỏi sự kiểm soát không ngừng nghỉ. Tôi tin là bạn đã nhiều lần tự hỏi những câu hỏi như:

Có nên thoát lệnh giao dịch khi giá đang ở đỉnh không?Làm thế nào để xác định được giá của một tài sản có tiếp tục tăng không hay thị trường sẽ quay đầu?Phải chăng đây là tín hiệu giả và không cần phải chấp nhận rủi ro và vội vàng mở một vị thế?

Bạn cần phải theo kịp thị trường và đưa ra quyết định giao dịch kịp thời cả ngày lẫn đêm trong những phiên tích cực nhất. Khi giao dịch nhiều tài sản cùng một lúc, nhịp độ công việc sẽ càng dồn dập hơn.

MQL cho phép bạn triển khai bất kỳ chiến lược hoặc thuật toán giao dịch nào dưới dạng một chương trình máy tính. Sau khi được khởi động, chương trình này liên tục chạy trên một máy trạm trong MetaTrader Client Terminal. Ngoài ra, bộ sản phẩm bao gồm một số robot giao dịch, chỉ báo và script từ nhà phát triển nền tảng dưới dạng code nguồn, tạo điều kiện thuận lợi cho việc phát triển ngôn ngữ và các kỹ thuật vốn có. Ngoài ra MQL được cung cấp kèm theo thông tin tham khảo chi tiết trực tuyến và ngoại tuyến. Có một cộng đồng lớn những người dùng ngôn ngữ này.

Giả sử bạn nghĩ ra một chỉ báo thú vị hoặc một thuật toán giao dịch thông minh để sử dụng trong giao dịch hoặc có thể bạn muốn phân tích thị trường bằng cách sử dụng mạng thần kinh? Không giới hạn. Với MQL, bạn có thể triển khai bất kỳ ý tưởng nào dưới dạng chỉ báo, expert hoặc ứng dụng khác, biên dịch, gỡ lỗi, kiểm tra dữ liệu lịch sử trong trình thử nghiệm chiến lược – bạn có thể làm tất cả mà không phải chịu rủi ro tài chính và sử dụng nó một cách tích cực trong giao dịch.

Tóm lại, MQL cho phép viết các tiện ích để theo dõi trạng thái của tài khoản giao dịch, tính toán các chỉ báo và mức, nhận tín hiệu giao dịch và xác định điểm vào và thoát thị trường. Các công cụ ngôn ngữ cho phép robot giao dịch hoặc chỉ báo tổ chức trao đổi thông tin với máy chủ từ xa bằng giao thức TCP, bao gồm mã hóa TLS hoặc giao thức HTTP. Có thể gửi dữ liệu qua FTP cũng như thông báo đẩy đến máy khách di động MetaTrader hoặc tới email của người dùng. Một chương trình được viết tốt và gỡ lỗi sẽ hoạt động cho đến khi bạn quyết định thực hiện thay đổi hoặc thay thế hoàn toàn nó bằng một chương trình khác. Bạn chỉ cần đảm nhận việc kiểm soát chung.

Điểm lại lịch sử của Ngôn ngữ MQL4 và MQL5

MQL ra đời là kết quả của sự phát triển tiến hóa của nền tảng MetaTrader. Đây là một công cụ để quản lý tự động các tài khoản giao dịch trong MetaTrader. Tôi sẽ không đi sâu vào chi tiết mà chỉ nhắc lại ngắn gọn.

MetaQuotes đã phát hành Ngôn ngữ MetaQuotes cùng với nền tảng MetaTrader, trước đây là ứng dụng FXCharts. MQL đã phát triển lên phiên bản thứ hai cùng với bản cập nhật MetaTrader 3. Trong phiên bản này, MetaQuotes đã triển khai API, được cung cấp cho khách hàng như một lớp bổ sung giữa MetaTrader Client và MetaTrader Server.Thế hệ thứ tư của nền tảng được phát hành vào ngày 1 tháng 7 năm 2005. MQL4 được phát hành kèm theo. Ngôn ngữ lúc này đã không còn khả năng tương thích ngược với phiên bản trước. MetaQuotes cũng ngừng hỗ trợ API terminal khách hàng, nhưng đã mở rộng khả năng của ngôn ngữ và cho phép tích hợp các thư viện DLL tùy chỉnh vào ứng dụng MQL. API chỉ còn có sẵn cho các nhà môi giới ở cấp máy chủ, quản trị và quản lý.

Vào tháng 6 năm 2010, sau nhiều bản phát hành, MetaTrader 5 đã được ra mắt. MetaQuotes đã thiết kế lại logic giao dịch, loại bỏ hầu hết các hạn chế do cấu trúc nội bộ của nền tảng. Nhưng cho đến nay MT5 vẫn không thể cạnh tranh với thế hệ thứ tư xét về mức độ phổ biến.

Vào tháng 2 năm 2014, MQL4 đã được cập nhật cùng với bản dựng 600 của terminal khách hàng MT4. MetaQuotes đã cải tiến MQL4, đưa vào hầu hết các tính năng từ MQL5, đồng thời tăng tốc MQL4 lên cấp độ của MQL5.

Tính năng của ngôn ngữ lập trình MetaQuotes 4 và 5

MQL được sử dụng để tạo ra các chiến lược giao dịch tự động. Code MQL được diễn giải sơ bộ thành code C++, sau đó được biên dịch thành code thực thi hoạt động bên trong terminal dưới dạng thư viện động nội bộ. Nếu chúng ta vẽ một đường song song với đường chính, thì sẽ tương tự như việc đưa thư viện DLL vào trong code thực thi của chương trình chính. Cách tiếp cận này giúp dễ dàng phát triển một ngưỡng thấp để tham gia vào lĩnh vực giao dịch tự động. Ngôn ngữ này phổ biến trong giới giao dịch, bất chấp phạm vi chuyên môn hóa hẹp và sự phụ thuộc vào nền tảng.

MetaQuotes chăm sóc người dùng bằng cách cung cấp thông tin trợ giúp chi tiết cho tất cả các ứng dụng của họ. Tài liệu tham khảo về lập trình MQL4 và MQL5 được cung cấp cùng với MetaEditor bằng nhiều ngôn ngữ dưới dạng tệp HTM. Do đó, bạn luôn có được hướng dẫn chi tiết kèm theo code ví dụ để triển khai hành vi mong muốn.

Một cộng đồng lớn các nhà giao dịch và lập trình viên đã hình thành xung quanh MQL. Có các công cụ để lập trình viên và nhà giao dịch giao tiếp với nhau. Một lớp ứng dụng tạo sẵn đã được tạo ra để đơn giản hóa quy trình giao dịch. Chợ trực tuyến để trao đổi các ứng dụng trả phí hoặc miễn phí có sẵn tại mql5.com. Terminal giao dịch tích hợp kho ứng dụng, codebase, các bài viết và tín hiệu từ các nhà giao dịch khác. Kho ứng dụng cung cấp hàng trăm giải pháp trả phí và miễn phí như chỉ báo, advisor, script và đủ loại tiện ích. Mua một chương trình tạo sẵn sẽ dễ dàng hơn là cố gắng phát minh ra thứ đã có sẵn rồi.

Nếu bạn quyết định tự học MQL để tạo ứng dụng của riêng mình, hãy đọc bài viết này để tìm hiểu về những vấn đề thường gặp khi mới bắt đầu đi theo hướng này. Bài viết chỉ giới thiệu kiến thức cơ bản nhập môn và không dành cho độc giả nâng cao.

Các nhà phát triển hỗ trợ cung cấp thông tin cho cộng đồng MQL bằng cách thường xuyên xuất bản các bài viết hướng dẫn về nhiều chủ đề khác nhau trong thế giới giao dịch. Tác giả của các bài viết khảo sát các kỹ thuật lập trình mới, trong đó có khởi tạo mạng thần kinh, phân tích và giải pháp cho các vấn đề và các hạn chế của ngôn ngữ, phân tích và thử nghiệm các chiến lược giao dịch, tìm kiếm và triển khai các thuật toán mới.

Trình hướng dẫn của MQL cung cấp 8 tùy chọn cho MQL4 và 10 tùy chọn cho MQL5. Dưới đây là ảnh chụp màn hình của trình hướng dẫn tệp cho cả hai phiên bản ngôn ngữ.

Cùng xem xét những tùy chọn phổ biến nhất: MetaQuotes 4

Expert Advisor/Trading robot (Robot giao dịch);Indicator (Chỉ báo);Script;Include (.mqh).

Sau khi biên dịch, các ứng dụng này ở dạng code thực thi sẽ được lưu trong thư mục thích hợp của MetaTrader Client Terminal (File -> Open Data Folder): Expert, Indicators, Script, v.v. Sau đó, sau khi được khởi tạo trên biểu đồ, chúng sẽ được khởi chạy để đáp ứng với các sự kiện tạo bởi MetaTrader Client Terminal trong khi hoạt động. Sự kiện là tác nhân khởi chạy chương trình tùy chỉnh và cho phép bạn theo dõi quá trình khởi tạo và hủy khởi tạo, nhận báo giá mới, sự kiện tùy chỉnh trên biểu đồ, v.v.

Ngoài ra, bạn hiện đã có thể tạo ứng dụng bằng Python. Theo đó, các công cụ lập trình Python có sẵn trong terminal giao dịch.

Các trình xử lý sự kiện sau đây được mô tả trong Tài liệu tham khảo của MQL4.

0933555270