Passer au contenu
Tous les documents de la bibliothèque

Transmettre des événements de trading MQL5 vers HTTP avec file d’attente et nouvelle tentative

Article MQL5 articles

Résumé

Cet article explique comment un Expert Advisor MQL5 peut envoyer des événements de trading à un serveur HTTP local via WinINet. OnTradeTransaction sérialise les ouvertures et les clôtures au format JSON et les place dans une file d’attente en mémoire ; un rappel de minuterie tente séparément de les transmettre afin que les délais réseau ne bloquent pas le rappel de trading. La session WinINet est réutilisée, tandis que des handles de connexion et de requête sont créés pour chaque POST, puis fermés.

La conception consulte le premier élément de la file d’attente afin qu’un échec de transmission le laisse en attente d’une nouvelle tentative. Les journaux distinguent le premier échec, les trades mis en file d’attente pendant une interruption et la première transmission réussie après le rétablissement. L’article décrit un récepteur Python et un script de test avec des assertions portant sur l’échappement JSON, le débordement de la file et un aller-retour HTTP. Il s’agit d’un exemple d’implémentation, et non d’une stratégie de trading ou d’une preuve de performance. Les appels WinINet restent synchrones dans le rappel de minuterie ; la file est perdue si l’EA redémarre, et l’échappement JSON décrit ne couvre pas les caractères non-ASCII.

Idées clés

  • Mettre en file d’attente les données des événements de trading dans OnTradeTransaction et transmettre les données depuis un rappel de minuterie distinct.
  • Réutiliser le handle de session WinINet et ouvrir de nouveaux handles de connexion et de requête pour chaque POST.
  • Conserver l’élément en tête de file jusqu’à la confirmation d’une réponse réussie du serveur, puis le retirer.
  • Éviter de répéter les erreurs d’interruption tout en signalant l’activité mise en file et un récapitulatif du rétablissement.
  • La file en mémoire ne survit pas aux redémarrages de EA, et les appels réseau bloquent toujours le rappel de minuterie.

Étiquettes

Ce résumé a été rédigé par l’agent de recherche de Stratmill à partir de la source originale ; il n’en est pas une copie.