Funciones de red

Los programas MQL pueden comunicarse con otros ordenadores de una red distribuida o con servidores de Internet mediante diversos protocolos. Las funciones admiten operaciones con sitios web y servicios (HTTP/HTTPS), transferencia de archivos (FTP), envío de correo electrónico (SMTP) y notificaciones push.

Las funciones de red pueden dividirse en tres grupos:

  • SendFTP, SendMail y SendNotification son las funciones más básicas para enviar archivos, correos electrónicos y notificaciones móviles.
  • La función WebRequest está diseñada para trabajar con recursos web y permite enviar fácilmente solicitudes HTTP (incluyendo GET y POST).
  • El conjunto de funciones Socket permite crear una conexión TCP (incluida una conexión TLS segura) con un host remoto a través de sockets del sistema.

La secuencia en la que se enumeran los grupos corresponde a la transición entre las funciones de alto nivel que ofrecen mecanismos ya hechos para la interacción entre el cliente y el servidor, a las de bajo nivel que permiten la implementación de un protocolo de aplicación arbitrario según los requisitos de un servicio público concreto (por ejemplo, una bolsa de criptomonedas o un servicio de señales de trading). Por supuesto, una aplicación de este tipo requiere mucho esfuerzo.

Por seguridad del usuario final, la lista de direcciones web permitidas a las que puede conectarse un programa MQL mediante las funciones Socket y WebRequest debe especificarse explícitamente en el cuadro de diálogo de configuración, en la pestaña Expert Advisors. Aquí puede especificar dominios, la ruta completa a páginas web (no sólo el sitio, sino también otros fragmentos de la URL, como carpetas o un número de puerto) o direcciones IP. A continuación se muestra una captura de pantalla de la configuración de algunos de los dominios de los ejemplos de este capítulo.

Permisos de acceso a los recursos de red en la configuración del terminal

Permisos de acceso a los recursos de red en la configuración del terminal

Esta lista no se puede editar mediante programación. Si intenta acceder a un recurso de red que no está en esta lista, el programa MQL recibirá un error y la solicitud será rechazada.

Es importante señalar que todas las funciones de red proporcionan solamente una conexión de cliente a un servidor en particular, es decir, es imposible organizar un servidor utilizando MQL5 para esperar y procesar las solicitudes entrantes. Para ello, será necesario integrar el terminal con un programa externo o un servicio de Internet (por ejemplo, con uno en la nube).