MetaEditor a un débogueur intégré vous permettant de vérifier l'exécution d'un programme pas à pas (par fonctions individuelles). Placez des points d'arrêt dans le code. Ce sont les endroits où l'exécution du programme sera stoppée. Lancez ensuite le programme sur un graphique normal ou le strategy tester. Dès que le programme atteint un point d'arrêt, il est mis en pause. Ceci vous permet de voir les valeurs des variables calculées et de continuer ensuite l'exécution du programme pas à pas en vérifiant l'exécution de l'algorithme.
Avant de déboguer, définissez les paramètres généraux dans les paramètres de MetaEditor. Vous pouvez spécifier le symbole et la période du graphique sur lequels le déboguage des applications sera fait. Ce graphique sera créé temporairement chaque fois que vous lancerez un déboguage et supprimé ensuite immédiatement à la fin.
Le modèle debug.tpl situé dans le répertoire /profiles/templates de la plateforme de trading est appliqué au graphique de déboguage. |
Un point d'arrêt est une commande déclenchée lorsque l'exécution d'un programme atteint une ligne de code spécifiée. La commande stoppe l'exécution à cette ligne de code. Les points d'arrêt permettent d'examiner le comportement d'un programme dans une zone de code spécifiée : voir les valeurs des variables et la piles des appels de fonctions. Par la suite, le processus de déboguage peut être continué ou terminé.
Avant de lancer un déboguage, placez au moins un point d'arrêt dans le code du programme. Pour cela, double-cliquez sur le champ gris à gauche de la ligne de code. Vous pouvez également placer le curseur sur la ligne et cliquer sur Activer un Point d'arrêt dans le menu Debug ou F9. Les points d'arrêt peuvent être désactivés de la même façon.
Si vous voulez vous rendre à l'endroit où l'exécution du programme a été stoppée, double-cliquez sur la fonction dans la fenêtre de visualisation de la pile des appels. Vous pouvez également ouvrir la liste de tous les points d'arrêt du programme en cours de déboguage avec le menu contextuel :
Vous pouvez vous rendre sur n'importe quel point d'arrêt en double-cliquant dessus.
Pour exécuter le déboguage, ouvrez le fichier principal du programme ou un projet. Le déboguage peut être effectué dans 2 modes :
Dès que l'exécution du programme en mode déboguage atteint un point d'arrêt, il est mis en pause. La ligne sur laquelle l'exécution est arrêtée est marquée avec l'icone . L'onglet Debug apparaît également dans la fenêtre Boite à Outils. Sa partie gauche affiche la pile d'appels (call stack) des fonctions.
Pendant le déboguage, les valeurs des différentes expressions (variables) peuvent être suivies dans le bloc de code courant de l''exécution du programme. La partie droite de l'onglet Debug de la Boîte à Outils affiche les résultats correspondants. Pour suivre les valeurs de l'expression, ajoutez-la aux expressions observées :
Vous pouvez également activer l'affichage automatique des variables locales dans la liste de surveillance du débogueur. L'affichage peut être activé par la commande "Local" du menu contextuel. Au fur et à mesure que l'opération de débogage progresse dans le code, les variables de la portée actuelle sont automatiquement affichées dans la liste.
Dans la fenêtre d'observation des expressionsn, vous pouvez effectuer des calculs mathématiques simples (addition, soustraction, multiplication et division), mais aussi voir les valeurs d'un tableau à un indice précis, par exemple, en spécifiant A[3][4], où A est le nom d'un tableau, et 3 et 4 les positions dans chaque dimension. Lors de l'ajout d'objets aux expressions observées, vous pouvez voir la liste de leurs membres en spécifiant un arrêt complet à la fin ou en appuyant sur Ctrl+Space :
Pour afficher le contenu d'un tableau ou d'un objet, double-cliquez dessus dans la fenêtre d'observation.
Par défaut, les entiers sont affichés dans la fenêtre d'observation sous forme décimale. Pour voir la valeur sous forme binaire ou hexadécimale, spécifiez les modificateurs b ou x, séparés avec des virgules, selon le champ Expression.
Les données retournées par les fonctions à son appelant sont spécifiées dans la pile d'appels. La pile vous permet de suivre la séquence entière de l'occurrence d'un évènement dans la plateforme de trading jusqu'à l'appel spécifique d'une fonction.
Les données suivantes sont affichées pour chaque fonction :
Les commandes du menu Debug ou de la barre d'outils Standard sont utilisées pour le déboguage en pas à pas avec la possiblité de voir la pile des appels :
Les commandes de déboguage en pas à pas ne peuvent être utilisées qu'une fois que le mode de déboguage est mis en pause :
Les évènements continuent de se produiredans la plateforme de trading même si le programme est sur un point d'arrêt. Tous les évènements se produisant sont placées dans une file d'attente, et leur traitement par un expert advisor continuera après la fin du gestionnaire d'évènement en cours. |
Le programme est stoppé automatiquement pendant le déboguage dès que l'exécution atteint une ligne de code où un point d'arrêt est activé. Le déboguage peut également être géré manuellement :
|
En dehors des données en temps réel, le déboguage des robots de trading et des indicateurs techniques peut être effectué également sur l'historique. N'importe quel programme peut être testé sur les données historiques nécessaires sans avoir à attendre certains évènements de trading en temps réel.
Déboguer sur les données historiques s'exécute en mode visuel de test dans le Strategy Tester. Une application est exécutée sur un graphique sur la base d'une suite de ticks émulés dans le testeur ou de ticks de l'historique (reçus du courtier).
Pour commencer à déboguer sur l'historique, définissez les paramètres de test dans les paramètres de MetaEditor.
Définissez les points d'arrêt dans le code et commencez ensuite le déboguage utilisant les prix de l'historique.
Ceci lancera le test visuel et le déboguage.