Các API MQL5 phổ biến
Trong các phần trước của cuốn sách, chúng ta đã nghiên cứu các khái niệm cơ bản, cú pháp và quy tắc sử dụng các cấu trúc ngôn ngữ MQL5. Tuy nhiên, đây chỉ là nền tảng để viết các chương trình thực tế đáp ứng yêu cầu của nhà giao dịch, chẳng hạn như xử lý dữ liệu phân tích và giao dịch tự động. Việc giải quyết các nhiệm vụ như vậy sẽ không thể thực hiện được nếu không có một loạt các hàm tích hợp sẵn và phương tiện tương tác với terminal MetaTrader 5, tạo nên MQL5 API.
Trong chương này, chúng ta sẽ bắt đầu làm quen với MQL5 API và sẽ tiếp tục làm điều đó cho đến cuối cuốn sách, dần dần tìm hiểu tất cả các hệ thống con chuyên biệt.
Danh sách các công nghệ và khả năng được cung cấp cho bất kỳ chương trình MQL nào bởi nhân (môi trường thực thi của các chương trình MQL bên trong terminal) là rất lớn. Đây là lý do tại sao việc bắt đầu với những thứ đơn giản nhất có thể hữu ích trong hầu hết các chương trình là điều hợp lý. Cụ thể, ở đây chúng ta sẽ xem xét các hàm chuyên biệt để làm việc với mảng, chuỗi, tệp, chuyển đổi dữ liệu, tương tác với người dùng, hàm toán học và kiểm soát môi trường.
Trước đây, chúng ta đã học cách mô tả các hàm của riêng mình trong MQL5 và gọi chúng. Các hàm tích hợp sẵn của MQL5 API có sẵn từ mã nguồn, như người ta thường nói, "ngay từ đầu", tức là không cần bất kỳ mô tả sơ bộ nào.
Điều quan trọng cần lưu ý là, không giống như trong C++, không cần thêm các chỉ thị tiền xử lý để bao gồm một tập hợp cụ thể các hàm tích hợp sẵn trong chương trình. Tên của tất cả các hàm MQL5 API đều hiện diện trong ngữ cảnh toàn cục (không gian tên), luôn luôn và không điều kiện.
Một mặt, điều này rất tiện lợi, nhưng mặt khác, nó đòi hỏi bạn phải nhận thức được khả năng xung đột tên. Nếu bạn vô tình cố gắng sử dụng một trong những tên của các hàm tích hợp sẵn, nó sẽ ghi đè lên triển khai tiêu chuẩn, điều này có thể dẫn đến những hậu quả không mong muốn: trong trường hợp tốt nhất, bạn nhận được lỗi biên dịch về việc nạp chồng không rõ ràng, và trong trường hợp xấu nhất, tất cả các cuộc gọi thông thường sẽ được chuyển hướng đến triển khai "mới" mà không có bất kỳ cảnh báo nào.
Về lý thuyết, các tên tương tự có thể được sử dụng trong các ngữ cảnh khác, chẳng hạn như tên phương thức lớp hoặc trong một không gian tên dành riêng (do người dùng định nghĩa). Trong những trường hợp như vậy, việc gọi hàm toàn cục có thể được thực hiện bằng cách sử dụng toán tử phân giải ngữ cảnh: chúng ta đã thảo luận về tình huống này trong phần Các kiểu lồng nhau, không gian tên và toán tử ngữ cảnh '::'.
- MQL5 Programming for Traders — Source Codes from the Book. Part 4
- Examples from the book are also available in the public project \MQL5\Shared Projects\MQL5Book