网络函数
MQL 程序可以使用各种协议与分布式网络或互联网服务器上的其他计算机通信。这些函数支持与网站和服务 (HTTP/HTTPS)、文件传输 (FTP)、电子邮件发送 (SMTP) 以及推送通知相关的操作。
网络函数可以分为三组:
- SendFTP、SendMail 和 SendNotification 是用于发送文件、电子邮件和移动通知的最基本函数。
- WebRequest 函数旨在处理 Web 资源,并允许你轻松发送 HTTP 请求(包括 GET 和 POST)。
- Socket 函数集允许你通过系统套接字与远程主机创建 TCP 连接(包括安全的 TLS 连接)。
各组列出的顺序对应于从提供客户端和服务器之间现成交互机制的高级函数,到允许根据特定公共服务(例如,加密货币交易所或交易信号服务)的要求实现任意应用协议的低级函数的过渡。当然,这样的实现需要付出大量的努力。
为了最终用户的安全,MQL 程序可以使用 Socket 函数和 WebRequest 连接的允许 Web 地址列表,必须在设置对话框的Expert Advisors选项卡中明确指定。在这里,你可以指定域名、网页的完整路径(不仅是站点,还包括 URL 的其他片段,如文件夹或端口号)或 IP 地址。以下是本章示例中某些域设置的屏幕截图。
终端设置中访问网络资源的权限
你无法以编程方式编辑此列表。如果你尝试访问不在此列表中的网络资源,MQL 程序将收到错误并且请求将被拒绝。
一定要注意,所有网络函数仅提供到特定服务器的客户端连接,也就是说,无法使用 MQL5 组织一个服务器来等待和处理传入的请求。要这样做,需要将终端与外部程序或互联网服务(例如,云服务)集成。