Coder des requêtes HTTP en MQL4

L'objectif de ce tutoriel est d'apprendre à réaliser des requêtes HTTP via le MQL4. L'objectif est d'utiliser les API pour améliorer nos algorithmes de trading et permettre qu'ils interagissent avec les informations hors données de trading.

Récupérer les informations pour les inclure dans nos algorithmes

Dans cette formation, nous souhaitons récupérer des informations, par exemple, celles d'un calendrier économique, pour les utiliser dans notre algorithme.

L'idée de cette formation est de survoler les possibilités d'une méthode qui sont proposés par le langage MQL4 qui permet de communiquer avec des API.

Qu'est ce qu'une API ?

API veut dire "Application Programming Interface". C'est un ensemble de méthode (méthodes de classes) qui permettent de fournir une interface (comme une boite à outils) afin de pouvoir consommer les informations d'une application par d'autres applications.

Par exemple, nous avons des informations dans une base de données et nous souhaitons que ses données soient accessibles via Metatrader ou encore via un navigateur.

L'idée est de faciliter la communication entre les différents composant applicatifs.

Comment ça fonctionne les requêtes Web ?

Notre algorithme va appeler une url pour recevoir une information.

  • L'appel est une requête
  • La réception de l'information se nomme une réponse.

Notre algorithme va envoyer une "requête" à un serveur distant via une url pour recevoir une "réponse".

Nous n'allons pas entrer dans les détails, mais il existe plusieurs types de requêtes représentés par des verbes (je vais en nommer que deux) :

  • GET qui permet de récupérer des informations
  • POST qui permet d'envoyer des informations

Dans notre cas, c'est un serveur d'exemple qui va simuler notre calendrier économique.

Configuration de notre API

Pour notre exemple, j'ai créé une API très simple. Dans ce tutoriel, l'idée est de consommer cette API et pas de la créer, j'ai donc tout préparé en amont pour que ce soit plus simple.

Vous pouvez récupéré cette API dans les sources de ce tutoriel.

Mais deux méthodes urls seront accessibles :

  • GET http://localhost/events
  • POST http://localhost/events

Il faut par contre faire attention à bien renseigner ces url dans les urls autorisés par l'application Metatrader. Si non, les accès à cette url seront bloqués.

Il faut aussi faire attention. Les urls que vous souhaitez utiliser doivent entrer sur le port 80 pour du protocole HTTP et pour du protocole HTTPS il faut que ce soit sur du port 443.

La méthode WebRequest

Cette méthode permet d'envoyer des requêtes HTTP via votre script.

int  WebRequest(
   const string      method,           // Méthode HTTP de type GET, POST 
   const string      url,              // URL (adresse web)
   const string      cookie,           // Cookie (permet de stocker des informations) 
   const string      referer,          // Permet de récupérer l'url appelée précédemment 
   int               timeout,          // Temps maximum que doit prendre la requête
   const char        &data[],          // Données envoyée dans la requête
   int               data_size,        // Taille du tableau en bites
   char              &result[],        // an array containing server response data
   string            &result_headers   // Les entête de la réponse
   );

Conformément à la loi informatique et des libertés, Robots Trading vous informe que des cookies seront utilisés lors de votre navigation.

Pour plus d'info sur les cookies 'man cookies'. Fermer cette fenêtres 'exit'.

~ root: man cookies

Les cookies ne sont pas des gâteaux, mais des informations stokés sur votre navigateur.

Ils servent généralement à connaître le trafic d'un site Web, qu'elles pages sont les plus vues...