Quelques Concepts basiques – Ticks, Contrôles et Commentaires

 

Bon, le sujet qui nous intéresse est la programmation en MQL4. Avant que nous commencions une présentation détaillée des règles d’écriture des programmes, il est nécessaire de décrire les concepts basiques qui caractérisent un programme et ses relations avec l’environnement d’information. Le terminal client Metatrader doit fonctionner en ligne. La situation sur les marchés financiers change en continue et cela influe sur les symboles affichés par les graphiques du terminal client. Les Ticks fournissent au terminal client les informations à propos du changement des prix sur le marché. 

 

La Notion de Tick

 

Un Tick est un évènement qui est caractérisé par un nouveau prix du symbole à un instant donné.

Les ticks sont fournis à chaque terminal client par un serveur du dealing center. Selon la situation courante du marché, les ticks peuvent être reçus plus ou moins fréquemment; mais chacun apporte une nouvelle cotation, c’est à dire le prix d’une monnaie exprimée par rapport à une autre monnaie. 

Une application fonctionnant avec le terminal client pourrait travailler pendant une longue période de temps, par exemple plusieurs jours ou semaines. Chaque application est exécutée selon les règles établies pour chaque type d’application (Script, Expert Advisor, Indicateur). Par exemple, un Expert Advisor ne fonctionne pas en continue tout le temps. Un Expert Advisor est généralement lancé à chaque fois qu’un nouveau tick arrive. Pour cette raison, nous ne caractérisons pas les ticks comme de simples nouvelles cotations, mais plutôt comme un évènement qui doit être traité par le terminal client.

La durée de l’opération de l’Expert Advisor (EA) dépend du programme le constituant. Un EA classique réalise son cycle d’opérations en généralement un centième à un dixième de secondes. Pendant cette période, l’EA peut avoir traité quelques paramètres, réalisé une décision de trade, fournit des informations utiles au trader, etc. Après avoir finit son travail, l’EA retourne en mode d’attente du prochain tick. La description détaillée de comment l’apparition d’un nouveau tick influence les opérations du programme est réalisée ci dessous.

La Notion de Contrôle

 

Pour parler de de l’exécution du flot de code dans un programme, aussi bien que de son interaction  avec le terminal client, nous utiliserons le terme de “contrôle”.

Le Contrôle est un processus d’accomplissement des actions établies par le programme algorithmique et les caractéristiques du terminal client. Le contrôle peut être transféré à l’intérieure du  programme d’une ligne de code à une autre, ainsi que du programme au terminal client.

Le Contrôle est transféré d’une manière similaire que lorsque l’on donne la parole à quelqu’un lors d’une réunion. De la même manière que l’orateur s’exprime lors d’une réunion, puis passe la parole à un autre intervenant, le terminal client et le programme se transfère le contrôle l’un à l’autre. Cependant, le terminal client domine. Son statut est plus élevé que celui du programme, comme l’autorité du maitre de séance par rapport à un orateur ordinaire. 

Avant que le programme soit lancé, le contrôle est sous la supervision du terminal client. lorsqu’un nouveau tick est reçu, le terminal client transfert le contrôle au programme. le code de programme commence à être exécuté  à ce moment là.

Après avoir transféré le contrôle au programme, le terminal client n’arrête pas ses opération pour autant. Il continue de travailler avec le maximum de ses capacités pendant l’entière période qu’il est lancé sur le PC. Le programme ne peut quand à lui commencer à travailler seulement lorsqu’il a le contrôle. Pour reprendre l’exemple du maître de séance et de l’orateur, le maître de séance contrôle la réunion du début jusqu’à la fin, tandis que l’orateur ne prends la parole que pendant un temps limité.

Après avoir terminé ses opérations, le programme rend le contrôle au terminal client et ne peut pas se lancer par lui même. Cependant, lorsque le contrôle a déjà été transféré au programme, le terminal client ne peut récupérer le contrôle par lui même. Les actions dynamiques des utilisateur, comme par exemple l’arrêt forcé du programme, sont des exceptions. 

Lorsque l’on évoque le soucis de performance et de structure interne des programmes, on s’intéresse principalement au transfert du contrôle à l’intérieure d’un programme. Regardons la figure 2 qui schématise le transfert du contrôle à un programme, son rendu et son transfert à l’intérieur même du programme. Les disques visibles dans la figure caractérisent des petits fragments logiques exécutés, tandis que les flèches entre les cercles montrent comment le contrôle est transféré d’un fragment à un autre.

 

Fig. 2. Transfert du contrôle à l’intérieure d’un programme

 

Un programme qui a accepté le contrôle venant du terminal client commence à réaliser des actions inscrites dans son algorithme. Le programme contient des lignes de code et généralement l’ordre d’exécution du programme consiste à un transfert séquentiel du contrôle, d’une ligne à l’autre dans la direction descendante (globalement de la première à la dernière ligne). Nous parlerons par la suite plus précisément de ce que l’on peut écrire dans ces lignes de code.

Pour l’instant, il est seulement important de souligner que chaque fragment logique est exécuté une fois qu’il a le contrôle. Ces fragments peuvent être par exemple des calculs mathématiques, un message à afficher sur l’écran, la formation d’un ordre de trade, etc. Tant que le fragment s’exécute, il garde le contrôle. Une fois qu’il a été complètement exécuté, le contrôle est transféré à une autre fragment. Une fois que le dernier fragment est exécuté, le contrôle est rendu au terminal client.

 

La Notion de Commentaire

 

Le programme est constitué de deux types d’enregistrement: ceux réalisant le programme en lui même (le code) et ceux permettant d’expliquer le code (les commentaires).

Les commentaires sont des composants optionnels et non exécutables d’un programme.

Les commentaires sont donc des parties optionnelles des programmes. Ceci signifie qu’un programme fonctionnera selon son code qu’il y ait des commentaires ou non. Cependant, les commentaires facilitent beaucoup la compréhension du code et sont donc très utiles. Il y a des commentaires uni-ligne et des commentaires multi-lignes. Un commentaire uni-ligne est n’importe quelle séquence de texte suivant un double slash (//). Un commentaire multi-lignes commence quand à lui par les symboles /* et finit par les symboles */ . La figure 3 montre des exemples de commentaires.

 

Fig. 3. Exemple de commentaires dans un programme.

 

Les commentaires sont largement utilisés dans les programmes bien écrits. Ils apparaitront en gris dans l’éditeur de Metatrader 4.

 

Retour sommaire.

 Suivant: Constantes et Variables

Traduction: Nicolas Vitale
http://book.mql4.com/basics/common
“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>