Plan de proyecto de un servicio web para copiar señales y operaciones de trading

Como proyecto de demostración integral, que desarrollaremos a lo largo de este capítulo, tomaremos un producto sencillo, pero al mismo tiempo bastante avanzado tecnológicamente: un sistema de trading de copias cliente-servidor. La parte cliente serán programas MQL que se comunican con la parte central mediante tecnología de sockets. Teniendo en cuenta que MQL5 solo permite trabajar con sockets de cliente, tendrá que elegir una plataforma alternativa para el servidor de sockets (se ofrece más información al respecto más adelante). Así pues, el proyecto requerirá la simbiosis de varias tecnologías diferentes y el uso de muchas secciones de la API de MQL5 que ya hemos estudiado, incluidos los códigos de aplicación desarrollados sobre su base.

Gracias a la arquitectura cliente-servidor basada en sockets, el sistema puede utilizarse en distintos escenarios:

  • Para facilitar la copia de operaciones de trading entre terminales de un mismo ordenador;
  • Para establecer un canal de comunicación privado (personal) entre terminales de distintos ordenadores, incluso no sólo en la red local, sino también a través de Internet;
  • Para organizar un servicio público de señales abierto o cerrado que requiera inscripción;
  • Para supervisar el trading;
  • Para administrar su propia cuenta a distancia.

En todos los casos, los programas cliente actuarán con 2 roles: un publicador (editor, emisor) y un suscriptor (receptor) de datos.

No inventaremos nuestro propio protocolo de red, sino que utilizaremos el popular estándar WebSocket. Su implementación cliente está integrada en todos los navegadores, y tendremos que repetirla (con mayor o menor grado de completitud) en MQL5. Por supuesto, la compatibilidad con WebSocket también está disponible para los servidores web más populares. Por lo tanto, en cualquier caso, nuestros desarrollos no solo pueden adaptarse a otros servidores (si a alguien le conviene), sino que también pueden integrarse con sitios conocidos que prestan servicios web similares. Aquí de lo que se trata es de seguir estrictamente la especificación de su API, construida sobre WebSockets.

A la hora de desarrollar sistemas de software más complejos que un programa independiente, es importante elaborar un plan de acción y, posiblemente, incluso diseñar un proyecto técnico que incluya la estructura de los módulos, su interacción y la secuencia de codificación.

Así que nuestro plan incluye:

  1. Análisis teórico del protocolo WebSocket;
  2. Selección e instalación de un servidor web con la implementación de un servidor WebSocket;
  3. Creación de un servidor eco sencillo (que envía una copia de los mensajes entrantes al cliente) para familiarizarse con la tecnología;
  4. Creación de una sencilla página web del lado de cliente para probar la funcionalidad del servidor eco desde un navegador;
  5. Creación de un servidor de chat sencillo que envíe mensajes a todos los clientes conectados, y una página web de prueba para el mismo;
  6. Creación de un servidor de mensajería entre proveedores y abonados identificables, y de un cliente web de prueba para el mismo;
  7. Diseño e implementación de WebSockets en MQL5;
  8. Creación de un script sencillo como cliente para un servidor eco;
  9. Creación de un Asesor Experto simple como cliente de servidor de chat;
  10. Por último, creación de un copiador de operaciones de trading en MQL5 que actuará como proveedor de información (monitor de estado y cambios de la cuenta) y como consumidor de información (reproduciendo operaciones de trading), según la configuración.

Pero antes de empezar a aplicar el plan, tenemos que instalar un servidor web.