Các hàm mạng
Các chương trình MQL có thể giao tiếp với các máy tính khác trên mạng phân tán hoặc các máy chủ Internet bằng nhiều giao thức khác nhau. Các hàm hỗ trợ các hoạt động với trang web và dịch vụ (HTTP/HTTPS), truyền tệp (FTP), gửi email (SMTP) và thông báo đẩy.
Các hàm mạng có thể được chia thành ba nhóm:
SendFTP
,SendMail
vàSendNotification
là các hàm cơ bản nhất để gửi tệp, email và thông báo di động.- Hàm
WebRequest
được thiết kế để làm việc với các tài nguyên web và cho phép dễ dàng gửi các yêu cầu HTTP (bao gồm GET và POST). - Bộ hàm
Socket
cho phép tạo kết nối TCP (bao gồm kết nối TLS an toàn) với một máy chủ từ xa thông qua các socket hệ thống.
Thứ tự liệt kê các nhóm tương ứng với sự chuyển đổi từ các hàm cấp cao cung cấp các cơ chế sẵn có để tương tác giữa máy khách và máy chủ, đến các hàm cấp thấp cho phép triển khai một giao thức ứng dụng tùy ý theo yêu cầu của một dịch vụ công cộng cụ thể (ví dụ, sàn giao dịch tiền điện tử hoặc dịch vụ tín hiệu giao dịch). Tất nhiên, việc triển khai như vậy đòi hỏi rất nhiều công sức.
Để đảm bảo an toàn cho người dùng cuối, danh sách các địa chỉ web được phép mà một chương trình MQL có thể kết nối bằng các hàm Socket
và WebRequest
phải được chỉ định rõ ràng trong hộp thoại cài đặt trên tab Expert Advisors
. Tại đây, bạn có thể chỉ định các miền, đường dẫn đầy đủ đến các trang web (không chỉ trang web mà còn các đoạn khác của URL, chẳng hạn như thư mục hoặc số cổng), hoặc địa chỉ IP. Dưới đây là ảnh chụp màn hình cài đặt cho một số miền từ các ví dụ trong chương này.
Quyền truy cập tài nguyên mạng trong cài đặt terminal
Bạn không thể chỉnh sửa danh sách này bằng lập trình. Nếu bạn cố gắng truy cập một tài nguyên mạng không có trong danh sách này, chương trình MQL sẽ nhận được lỗi và yêu cầu sẽ bị từ chối.
Điều quan trọng cần lưu ý là tất cả các hàm mạng chỉ cung cấp kết nối máy khách tới một máy chủ cụ thể, tức là không thể tổ chức một máy chủ bằng MQL5 để chờ và xử lý các yêu cầu đến. Để làm điều này, cần phải tích hợp terminal với một chương trình bên ngoài hoặc một dịch vụ Internet (ví dụ, với một dịch vụ đám mây).