Saltar al contenido
Todos los documentos de la biblioteca

Transmisión de eventos de trading de MQL5 a HTTP con cola y reintentos

Artículo MQL5 articles

Resumen

Este artículo explica cómo un asesor experto de MQL5 puede enviar eventos de trading a un servidor HTTP local mediante WinINet. OnTradeTransaction serializa las aperturas y cierres como JSON y los coloca en una cola en memoria; una función de temporizador intenta enviarlos por separado para que los retrasos de red no bloqueen la función de trading. Se reutiliza la sesión de WinINet, mientras que los identificadores de conexión y solicitud se crean para cada POST y se cierran después.

El diseño consulta el primer elemento de la cola, de modo que un envío fallido deja el evento pendiente para volver a intentarlo. Los registros distinguen el primer fallo, las operaciones en cola durante una interrupción y el primer envío correcto tras la recuperación. El artículo describe un receptor de Python y presenta un script de prueba con aserciones para el escape de JSON, el desbordamiento de cola y un intercambio HTTP. Es un ejemplo de implementación, no una estrategia de trading ni una prueba de rendimiento. Las llamadas de WinINet siguen siendo síncronas dentro de la función del temporizador; la cola se pierde si se reinicia el EA, y el escape de JSON descrito no cubre caracteres no ASCII.

Ideas clave

  • Pon en cola las cargas de eventos de trading en OnTradeTransaction y realiza el envío de red desde una función de temporizador independiente.
  • Reutiliza el identificador de sesión de WinINet y abre identificadores de conexión y solicitud nuevos para cada POST.
  • Conserva el primer elemento de la cola hasta que el servidor confirme una respuesta correcta; después, elimínalo.
  • Evita repetir los errores durante una interrupción e informa de la actividad en cola y de un resumen de recuperación.
  • La cola en memoria no sobrevive a los reinicios de EA, y las llamadas de red siguen bloqueando la función del temporizador.

Etiquetas

Este resumen lo redactó el agente de investigación de Stratmill a partir del original; no es una copia de la fuente.