Types de Programmes en MQL4

 

En commençant à écrire un programme en MQL4, le programmeur doit avant tout répondre à la question “quel type de programme sera-til ?”. Le contenu et la fonctionnalité du programme dépend entièrement de cela. En MQL4, il y a trois types d’applications: les Expert Advisors, les scripts et les indicateurs personnels. N’importe quel programme développé par un programmeur appartiendra à un de ces types. Ils ont tous leurs buts et leurs caractéristiques propres. Considérons ces divers types plus en détail.

Un Expert Advisor (EA) est un programme codé en MQL4 et exécuté par le terminal client à chaque nouveau tick. Le but principal de l’Expert Advisor est de prendre le contrôle des trades. Les Expert Advisors sont codés par les utilisateurs. Il n’y a pas d’EA interne au terminal client.

Un Script est un programme codé en MQL4 et exécuté par le terminal client seulement une fois. Les scripts ont pour objectif de réaliser les opérations qui devraient être exécutées seulement une fois. Les scripts sont codés par les utilisateurs. Il n’y a pas de scripts internes au terminal client.

Un Indicateur Personnel est un programme codé en MQL4 et exécuté par le terminal client à chaque nouveau tick. Leur objectif basique est de réaliser un affichage graphique d’indicateurs. Les indicateurs ne peuvent passer des ordres. Il y a deux types d’indicateur: les indicateurs techniques propriétaires intégrés au terminal client et les indicateurs personnels.Les indicateurs sont vus plus en détails dans des chapitres suivant de l’ouvrage.

Le programmeur choisit le type de programme à écrire selon l’objectif de celui ci et les propriétés et limitations des différents types.

Propriétés des Programmes

Table 2. Propriétés principales des Expert Advisors, scripts, et indicateurs personnels.

Propriété du Programme Expert Advisor Script Indicateur
Durée d’exécution Sur une long période Une fois Sur une long période
Trading Autorisé Autorisé Interdit
Affichage de lignes Non Non Oui
Utilisation simultanée de plusieurs programmes du même type Interdit Interdit Autorisé
Appel pour exécution programmée Interdit Interdit Interdit

Si nous voulons un programme qui parviendrait à traer selon un certain algorithme, nous devrions écrire un EA ou un script. Cependant, si nous voulons avoir une certaine information affichée graphiquement, nous devrions utiliser un indicateur.

 

Lancer l’exécution d’un programme

 

Il y a des critères qui distinguent les  Expert Advisors et les indicateurs personnels des scripts. C’est la durée de leur exécution. Nous avons déjà expliqué que les programmes étaient lancés pendant une durée qui est un multiple du nombre de ticks. Cette affirmation est vraie pour les EA et les indicateurs mais pas pour les scripts.

Expert Advisor et indicateur personnel. Une fois que vous avez attaché un programme (EA ou indicateur personnel) à la fenêtre d’un symbole, le programme réalise quelques préparations et passe en mode “attente de ticks”. Dès qu’un nouveau tick arrive, le programme sera lancé par le terminal client, puis réalisera toutes les opérations décrites dans son algorithme et une fois cela terminé, passe le contrôle au terminal client, c’est à dire passe en mode “attente de tick”.

Si un nouveau tick arrive quand le programme est en train de s’exécuter, ça n’affecte pas l’exécution du programme. Le programme continue à être exécuté selon son algorithme et passe ensuite le contrôle au terminal client. C’est pour cela que tous les ticks ne résultent pas dans le lancement d’un EA ou d’un indicateur personnel; seulement ceux qui arrivent lorsque le contrôle est au terminal client lorsque le programme est en mode “d’attente de tick”.

Le nouveau tick lance à nouveau l’exécution du programme. Un Expert Advisor ou un indicateur personnel peut donc fonctionner pendant une longue pèriode de temps, étant attaché à la fenêtre du symbole et se mettant en action de temps en temps lorsqu’un tick apparait.

De plus, un Expert Advisor diffère d’un indicateur par l’exécution de l’ordre au premier lancement du programme. Cette différence est déterminée par les propriétés spécifiques des fonctions spéciales dont une section leur sera consacrée dans la suite de l’ouvrage. Une fois attachée à la fenêtre du symbole, un Expert Advisor réalise les préparations nécessaires (fonction init()) et passe dans le mode d’attente pour lancer la fonction start(). A la différence des EAs, un indicateur personnel exécute à la fois la fonction init() et appelle la fonction start() une fois pour réaliser les calcules préliminaires de la valeur de l’indicateur. Ensuite, lorsqu’un nouveau tick arrive, le programme est lancé en appelant seulement la fonction start(), c’est à dire que les opérateurs sont exécutés selon l’algorithme de la fonction start().

Script. A la différence des Expert Advisors ou des indicateurs, un script sera lancé pour une exécution immédiate après avoir été attaché à une fenêtre d’un symbole, sans attendre un nouveau tick. Le code entier du script sera exécuté dans la foulée. Après que toutes les lignes du code aient été exécutées, le script finit ses opérations et est supprimé de la fenêtre du symbole. Un script est utile si vous souhaitez réaliser une opération unique, par exemple ouvrir ou fermer des ordres, afficher un texte à l’écran, installer des objets graphiques, etc.

 

Trading

Un des critères principaux qui caractérise les différents programmes est la possibilité de passer des instructions de trading. Une instruction de trading est un contrôle qu’un programme passe au serveur de trading afin d’ouvrir, fermer ou modifier des ordres. Les instructions de trading sont formées de programmes utilisant des fonctions intégrées que l’on appelle “fonctions de trading”.

Seulement les Expert Advisors et les scripts ont le droit d’utiliser des fonctions de trading (seulement si l’option correspondante est activée dans la configuration du terminal client). Il est interdit d’utiliser des fonctions de trading dans les indicateurs personnels. 

Utilisation Simultanée

Les programmes diffèrent également les uns des autres par la quantité de programmes de différents types que l’on peut attacher en même temps à une fenêtre de symbole.

Expert Advisor. Vous pouvez attacher seulement un EA dans une fenêtre de symbole. L’utilisation simultanée de plusieurs EA est impossible.

Script. Vous pouvez attacher seulement un script dans une fenêtre de symbole. L’utilisation simultanée de plusieurs scripts est impossible.

Indicateurs personnels. Vous pouvez attacher plusieurs indicateurs à une fenêtre de symbole simultanément. Ils n’interfèreront pas entre eux.

Les programmes de types différents peuvent être lancés simultanément sur une même fenêtre de symbole, dans la limite du respect des limitations de chaque type. Par exemple, il est possible de lancer un EA, un script et plusieurs indicateurs en même temps sur la même fenêtre. Par contre on ne peut pas lancer plusieurs EAs et scripts sur la même fenêtre.

Si vous souhaitez faire fonctionner en même temps plusieurs EAs sur un même symbole, il faut ouvrir plusieurs fenêtres de ce symbole et placer qu’un seul EA par fenêtre. Dans ce cas, vos EAs fonctionneront simultanément. Mais soyez prudent, car des EAs lancés d’une telle manière peuvent former des instructions de trading contraires. Par exemple, un EA peut donner l’ordre d’ouvrir un trade tandis qu’un deuxième EA demande de le fermer. Ceci peut donc aboutir à une longue séquence de trades inutiles jusqu’à la perte complète du compte…

Les programmes de chaque type peuvent créer des variables globales disponibles pour les autres programmes lancés dans le client terminal, incluant ceux lancés dans les fenêtres de différents symboles. Cela permet à l’ordinateur de coordonner les opérations simultanées de tous les programmes. Ces variables globales seront vues plus en détail dans une prochaine section.

 

Appel des programmes pour l’exécution

 

Les programmes de n’importe quel type ne peuvent être exécutés seulement au bon vouloir de l’utilisateur. En MQL4 vous ne pouvez appeler un Expert Advisor, script ou indicateur pour une exécution programmée.

La seule exception est la fonction iCustom() qui vous permet de vous référer à un indicateur personnel pour obtenir des données, et pour utiliser quelques fonctions des indicateurs techniques. L’utilisation de iCustom() ou des fonctions des indicateurs techniques ne débouche pas sur l’affichage d’éléments graphiques dans la fenêtre du symbole.

Retour Sommaire.
Suivant: MetaEditor

Traduction: Nicolas Vitale
Texte Original: http://book.mql4.com/basics/programms
“MQL4 is a trade mark of MetaQuotes Software Corp. and all related materials are reserved for MetaQuotes”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>