Tuto 002 - Comment coder votre Robot de trading MQL5 pour MT5 : L'Architecture du code

JP Media www.youtube.com

Résumé

Ce tutoriel présente l'architecture du code pour créer un robot de trading automatique sur MetaTrader 5 (MT5). Il aborde les avertissements liés aux risques du trading sur CFD et Forex, soulignant que la majorité des particuliers perdent de l'argent. Le tutoriel explique comment configurer l'éditeur MetaEditor 5, détaille le fonctionnement d'un robot de trading à travers un schéma, et donne des exemples de fonctions de codage de base, de boucles for, d'instructions if, et de l'utilisation de tableaux et de buffers. À la fin du tutoriel, les participants devraient être capables de passer des ordres automatiques d'achat et de vente et de tester leur code.

  • Présentation de l'architecture du code d'un robot de trading.
  • Explication du fonctionnement du robot à travers un schéma.
  • Démonstration de codage de fonctions de base, boucles, conditions et tableaux.

Introduction

JP Media présente un tutoriel sur l'architecture du code pour un robot de trading automatique sur MT5. Il rappelle les risques liés au trading sur CFD et Forex, soulignant que 80 à 90% des particuliers perdent de l'argent. Le tutoriel est conçu comme un cours pédagogique et non comme un conseil d'investissement.

Présentation de MetaEditor 5

Le tutoriel rappelle comment accéder à MetaEditor 5 via MT5, soit en appuyant sur F4, soit en allant dans l'éditeur MetaQuotes Language 4. L'objectif est de comprendre l'architecture du code pour se l'approprier. Un schéma du fonctionnement du robot de trading sera présenté, suivi de détails sur la programmation avec des exemples de fonctions de base, de boucles for, d'instructions if, et de l'utilisation de tableaux.

Fonctionnement du Robot de Trading

Le schéma du robot de trading montre le lancement du robot, la création des entrées utilisateur, le chargement des modules pré-codés, et la définition des variables globales. MT5 lance ensuite une phase d'initialisation avec la fonction OnInit, où les indicateurs et les variables sont initialisés. Après l'initialisation, le robot attend un nouveau tick, ce qui lance la fonction OnTick.

Protocole d'Achat et de Vente

Dans la fonction OnTick, le protocole d'achat et de vente est codé. Le robot récupère le prix, teste si des positions sont ouvertes, et vérifie si un signal de clôture est présent pour chaque position. Si c'est le cas, la position est clôturée. Ensuite, le robot teste s'il s'agit du premier tick de la bougie. Si c'est le cas, il récupère les données de la bougie précédente et teste s'il y a des positions en place. S'il n'y a pas de position et qu'il y a un signal d'achat, le robot achète. S'il n'y a pas de position et qu'il y a un signal de vente, le robot vend. Sinon, il retourne en phase d'attente.

Codage d'une Fonction

Le tutoriel montre comment coder une fonction simple appelée "écrire" dans la fonction OnTick. Cette fonction prend un commentaire en argument et l'affiche à l'écran. La fonction est définie avec le mot-clé void car elle ne retourne aucune valeur. Un exemple de commentaire est créé et affiché sur le graphique MT5.

Boucles et Instructions Conditionnelles

Une boucle for est codée dans la fonction OnInit pour afficher un nombre qui défile à l'écran. La boucle compte de 0 à 200 000. Une instruction if est ajoutée pour afficher le nombre seulement s'il est supérieur à 10 000. Cela démontre comment utiliser des boucles et des conditions pour contrôler le comportement du robot.

Tableaux et Buffers d'Indicateurs

Le tutoriel aborde les tableaux et les buffers d'indicateurs, expliquant comment stocker et accéder aux données de prix et d'indicateurs techniques. Il souligne que l'ordre des valeurs est différent selon qu'il s'agit d'un tableau statique ou d'un buffer d'indicateur. Par exemple, dans un buffer de prix, la bougie la plus ancienne est à l'index 0, tandis que dans un buffer de moyenne mobile, la valeur la plus récente est à l'index 0.

Examen du Code du Robot de Trading

Le tutoriel détaille le code du robot de trading, en commençant par l'introduction et les informations de copyright. Il explique ensuite les paramètres d'entrée utilisateur, regroupés par catégorie, tels que les périodes des moyennes mobiles, les stops loss, et le take profit. Les variables globales, comme les signaux d'achat et de vente, les prix ask et bid, et les références aux buffers des moyennes mobiles, sont également définies.

Fonction d'Initialisation et Fonctionnement de OnTick

La fonction d'initialisation (OnInit) est lancée automatiquement et calcule la valeur du point, le nombre de décimales du prix, et le capital de cession. Elle initialise également les moyennes mobiles en utilisant la fonction iMA, en spécifiant le symbole, la période, la valeur de la moyenne mobile, le décalage, le mode de calcul, et le prix sur lequel calculer la moyenne mobile. La fonction OnTick récupère le prix ask et bid, calcule le spread, et vérifie si des ordres sont ouverts.

Gestion des Ordres et Tests de Conditions

La fonction OnTick utilise une boucle for pour parcourir tous les ordres ouverts et tester s'il faut les clôturer. Elle vérifie le magic number de l'ordre pour s'assurer qu'il a été placé par le robot. Ensuite, elle teste si un signal de clôture est présent. Si c'est le cas, la fonction de clôture est lancée. La fonction teste également si c'est le premier tick de la bougie et, si c'est le cas, teste s'il y a un signal d'achat ou de vente.

Fonctions Personnelles et Stratégie de Trading

Le tutoriel aborde la définition de fonctions personnelles, telles que TesterSignalCloture, Cloturer, et TesterPremierTick. La fonction TesterPremierTick crée un buffer de prix pour stocker les deux dernières bougies et vérifie si le volume de la dernière bougie est égal à 1, ce qui indique qu'il s'agit du premier tick. Les fonctions TesterSignalAchat et TesterSignalVente ne sont pas encore codées, car c'est ici que la stratégie de trading sera implémentée dans le prochain tutoriel.

Fonctions d'Achat et de Vente

Les fonctions Acheter et Vendre sont détaillées, montrant comment calculer le stop loss et le take profit, créer une requête de trading, et envoyer l'ordre au serveur. La fonction Acheter utilise une boucle while pour retenter d'envoyer l'ordre jusqu'à trois fois si l'envoi échoue. Les fonctions CalculerStopLossAchat, CalculerTechProfitAchat, CalculerStopLossVente, et CalculerTechProfitVente sont également expliquées.

Test et Démonstration du Robot

Le code est compilé et testé sur MT5 en utilisant le testeur de stratégie. Bien qu'aucun trade ne soit passé car la stratégie n'est pas encore définie, les paramètres utilisateur peuvent être modifiés. Une démonstration est ensuite présentée avec un robot déjà finalisé, montrant des ordres qui se placent et un capital qui augmente. Les résultats du backtest sont analysés, révélant un profit de 118 euros, mais avec un pourcentage élevé de positions perdantes.

Conclusion

Le tutoriel conclut en encourageant les spectateurs à mettre des pouces bleus et à s'abonner pour être informés de la sortie du prochain tutoriel, qui portera sur le codage de la stratégie de trading.

Summarize any YouTube video in seconds

Get summaries like this one for any video, in your language, with the free Summ app.

Download on the Apple Store
Get it on Google Play

Transcription

YouTube Transcript Generator

0:03 [Musique] bonjour à tous bienvenue sur le site jp tirer media.fr je suis jp de la chaîne jp médias je vais aujourd'hui vous présenter l'architecturé du code de votre premier robots de trading en full auto dans ce tutoriel numéro 2 je vais passer à l'avertissement liées aux risques du trading sur cfd sur forex il faut savoir 80 90 % les particuliers perdent lorsqu'ils traitent sur les cfd donc avant de commencer et de vous lancer il faut s'assurer de bien comprendre le fonctionnement des cs des risques les cfd les risques induits par le trading sur forex 1 et puis les effets de levier ce tutoriel doit pas être considéré comme un conseil d'investissement mais

0:50 simplement comme une pédagogie c'est un cours pédagogiques destinées à vous présenter le fonctionnement des robots de trading alors pour commencer je vais vous rappeler ce qu'on a fait là derrière paul s'était simplement la présentation du meta éditeurs que vous lis ici métal editor 5 donc pour le faire apparaître tous un petit rappel vous avez sur mt 5 vous appuyez sur l'a4 où vous allez directement ici dans l'éditeur met ta cote langage 4 donc voilà vous avez concert votre éditeur qui apparaît là vous voyez le code du robot je vais le

1:36 commenter à la fin du tuto et vous l'expliquer de rased mais pour l'instant je vais vous indiquez un petit peu le but ce tuto donc c'est de créer donc l' architecture du code de bien le bien la comprendre et pouvoir ainsi se l'approprier je vous présenterai dans un deuxième temps la fonctionnement d'un robots de trading par un petit schéma qui se trouve donc sur le site jeu j'aurai l'occasion de montrer tout à l'heure ensuite je rentrerai un peu dans les détails de programmation et de codage avec quelques exemples de fonction de codage de fonction de fonctions de base pour montrer classique de vos premières fonctions ensuite encodera des boucles fort des ifs et

2:23 puis je vous montrerai un petit peu ce qu'on fait avec les tableaux et les différentes de peur donc aujourd'hui normalement à la fin de ce tuto vous serez en mesure de passer des ordres automatiques et que soit avant toi l'achat et de faire le test du togo où je mens 3 comment procéder exactement on verra qui sinon il n'y a pas grand-chose à tester puisqu'on n'a pas encore causé la stratégie donc les profits seront forcément 1,01 et puis là le prochain tuto nous en profitons pour coder donc 7 cette stratégie qui sera simple et qui sera une stratégie plutôt pédagogique qu'une stratégie et rentable voilà alors

3:13 avant de commencer pensé à jacquet un peu ses vidéos l'apprenti pouces bleu ou à vous abonner ça me permettra d'être encouragée et de continuer c'est hutteau c'est vrai que c'est toujours encourageant de voir un petit peu sur une vidéo ou en quelqu'un qui s'abonnent à votre chaîne donc pensez-y merci donc on va poursuivre maintenant avec la première partie donc de ce tuto qui est donc l'étude du robots de trading et de son fonctionnement grâce à un petit schéma que je vous présente tout de suite donc nous voilà sur le site jp thierry media.fr quand vous allez suivre donc le tutorial mql5 l'autre cet article qui relatifs à son

4:00 insu du taux est donc dans l'article j'ai glissé le fameux schéma dont vous parlez de fonctionnement du robot de trading donc je suis désolé si un peu de bruit autour de moi mais il ya des travaux chez moi un peu compliqué je n'arrête pas de couper cette vidéo mais bon c'est pas grave s'adapter donc on continue donc ça c'est donc le schéma du robots de trading donc vous voyez que au début on a le lancement du robot où on va créer les entrées utilisateurs les chargements de nodules prix codé et définir les variables globales ensuite mt 5 lancera une phase d'initialisation qui aura pour conséquence de lancer la fonction au minutes dans notre éditeur de code sea

4:45 se trouve ici un la fonction poligny talent est là et on va causer dedans donc ce qui se passe après c'est dans cette fonction on imite on va initialiser les indicateurs est initialisée nous variable ensuite à la fin de la fonction in it on se trouvera dans une phase d'attenté d'un nouveau tic donc la plateforme nous enverra un nouveau tic dès qu'on aura un nouveau tic la plateforme mt 5 lancera la fonction au nautic la fonction en tic elle se trouve ici juste après la fonction de l'inite est dedans on va codé tout notre protocole pour acheter pour vendre ainsi de suite donc le protocole idées établies ici

5:33 donc lancement de la fonction antique on récupère le prix on teste si des positions sont ouvertes s'il ya des positions ouvertes on va voir si on a un signal de clôture pour chacune de ses positions et on va clôturer si c'est le cas une fois que s'est clôturée on va tester si on est aux premiers tic de la bougie ou pas si on est pas au premier tic de la bougie et bar en bar yam plus puisque en fait nous ce qu'on veut dans une stratégie en général c'est de travailler sur la boue j précédente donc l'intérêt de ce test d'un premier tic c'est de savoir qu'en fait nous sommes en premier dit ctic d'une bougie ça veut dire que la bougie précédente elle est prête et que on a sa valeur de clôture et qu'on a ça valeurs d'ouverture sont plus haut sont plus bas

6:20 tout ce qu'on veut le volume tout ce qu'on veut on peut le récupérer donc en fait on sait que notre bougie précédente notre prix précédents il est prêt à être travaillés à être pris en compte il est définitif alors que si on continue au prochain ticket non on va travailler sur la bougie en cours qui ne cesse d'évoluer donc ici on va rester sur notre premier tic et on va récupérer les données de la bougie précédente ensuite ce qu'on fera c'est qu'on va tester s'il ya des positions en place s'il ya déjà des positions qui sont prises et ben et qui est qu'on a si on ne signe a pas de position qui sont prises pardon et qu'on a un signal d'achat on va acheter donc aucune position de prise un signal d'achat on achète si ce n'est pas le cas on va tester si

7:07 on n'a toujours aucune condition de prise et si on a un signal de vente et si c'est le cas si on a le signal de vente et qu'on a pas de deux positions en cours on va vendre si c'est pas le cas si on a déjà des positions en cours ou si on a pas de signal de vente est dans le devoir rapporte pas rien on retournera en base d'attentes à attendre un nouveau tic et ainsi de suite et on va continuer comme ça en boucle tant qu'on passera pas à un premier tic c'est à dire que tous les à petit qu'on va les ignorer sauf pour ce qui est de la phase de clôture on va cloutier on va tester les clôtures à chaque nouveau tic par contre on ne testera pas d'ouverture de position à chaque nautique mais seulement au premier tic en prenant en compte les bougies précédentes je vais vous laisser regarder ce schéma

7:53 est ce croquis à tête reposée et je vous encourage à l'imprimer ou à le mettre sur un écran c'est dans les prince secondaire pendant que vous connais donc pendant que vous examinez le code que je vais vous détailler tout à l'heure parce que vous verrez que le code est calqué sur ce schéma là donc maintenant qu'on a vu le le fonctionnement du robot de trading je vais vous donner quelques explications basiques sur le codage alors on va continuer maintenant avec le codage d'une fonction je vais vous le faire en live ici c'est pas compliqué on va aller dans la fonction au nautic et on va créer une fonction qui s'appelle

8:39 et créant écrire tout simplement et on va écrire un commentaire le commentaire qu'on va vouloir écrire à l'écran ça va être commentaires entourant le monde r comme ça donc ça c'est notre fonction on appelle écrire et on veut écrire l'écran un commentaire on va écrire comme intérêt donc pour il faut donc une fois qu'on a appelée notre fonction il faut donc la définir pour la définir il faut tenir d'abord ce qu'on veut récupérer de notre

9:26 fonction nous n'attends rien du tout de la fonction n'attend pas un retour de la fonction donc on éveille le nom de la fonction ces arguments me citer un string comment on va appeler s c'est une variable string qu'on va appeler est tout simplement on peut donner n'importe quel nom n'est pas de la par obligation on va créer le bloc d'instruction donc les instructions de une attention et ici on va coder les instructions de notre enfant elles sont toutes simples et si non c'est simplement un commun

10:12 pour créer un commentaire sur notre écran donc et les commentaires qu'on va codé ce sera ps on n'a pas de retour puisque on n'a pas besoin de coder un retour puisqu'on attend rien comme un retour de la fonction donc là notre fonction eco d'e.on la compil le code se compile bien y'a pas de problème à zéro erreur 0 horning les warnings ce n'est pas grave si on en a mais les erreurs il en faut pas un sinon ça ne fonctionne pas ado qu'une fois qu'on à côté notre fonction on retourne sur notre [Musique] sur un autre éditeur alors je l'avais déjà fait en live donc vous avez déjà commentaires ici on va recréer un

10:57 nouveau voilà on va le faire comme ça je prends un niveau graphique je prends ma fonction ma fonction mme à mon robot ogm codé je le mets dessus autorisé de trading ok et là je vois apparaître commentaire voilà donc ma fonction a bien fonctionné c'est parfait je retourne sur l'éditeur maintenant si je veux écrire un autre commentaire avec à la place de commentaires je veux écrire je vais vous parler à la ligne on pourrait la ligne c'est ce symbole là cela qu'on tisse la chaîne et puis le jay nolly donc je vais

11:46 recompilé et vous allez voir que que notre fonction va bien marcher donc voilà oui un autre test deuxième ligne dès que ses complices apprend en effet et voilà donc ces c'est assez simple vous voyez à coder une fonction donc maintenant je nous ai coder une petite boucle fort pour vous comprenez bien comment ça marche donc la boucle port et les godets dans la fonction i need ici et là le lancera la fonction écrire qu'on a fait juste avant pour afficher un chiffre un nombre qui va défiler à chaque fois qu'on va compter dans cette dans cette boucle donc ici on

12:33 va faire deux cent mille fois cette boucle avec notre code donc à chaque fois avant de passer à la suite quand vous passez aux instructions suivantes qui serait ici avant de passer la note boucle port elle devra se terminer c'est à dire qu'on va commencer à compter à 0 on va augmenter notre index 2 1 à chaque fois ça c'est la commande d'instrumentation et puis des temps que notre dex sera inférieur à 200 milles on va rester dans la boucle mais si le train ex devient supérieure à 200 milles on va quitter la boucle donc un et on va continuer le programme est dans notre

13:19 bloc d'instruction de la boucle à chaque fois on va faire donc deux cent mille fois écrivain et ex donc écrire la valeur de l'index donc ça va être un nombre qui va défiler donc d'ailleurs comme c'est un nombre notre fonction écrit elle n'attend pas un nombre mais un ou deux une valeur une chaîne de caractères nous ont valu de m un bilan donc on notifie un peu notre fonction écrire vous avez compris la boucle fort on va générer voilà compiler et on va vérifier le résultat sur notre on va voir si le nom qui est ici bouge normalement ça devrait donc on va le mettre en marche

14:04 donc ici on a notre fonction qui s'exécute vous vouliez que le nombre change voilà pas très souvent mais il ne change pas même ses notes ses notes boucle qui compte non donc on peut la laisser comme ça ça va se poursuivre à chaque ticket elle va compter comme ça arrive d'avoir faire donc on va l'arrêter et on va retourner sur notre code maintenant on va causer un petit bloc ifla dedans j'ai fait une petite erreur

14:53 le maître ici le bloc est vif bloc d'instruction donc ici on va faire un if et donc le wi fi ce code un peu comme une boucle forme il n'y a qu'une seule condition et on va vérifier que l'index soit supérieure à dix mille morts il peut y en avoir d'autres des conduction derrière on l'est on les admire à la suite en étant des épées et autres conditions ou alors dès le début ça s'écrira comme ça le haut pic donc ici si l'index est supérieure à 10 milles on va lancer notre fonction d'écriture mais seulement si ses supérieurs 10000 ça veut dire qu'on ne devrait jamais avoir un chiffre

15:40 inférieur à 10 milles qu'ils soient affichés sur notre sur notre blog de fonction sur notre écran donc je vais retourner sur un t5 je vais vous montrer exécution voilà donc ici le code tourner mais il n'affiche rien tant que c'est pas rien il ne modifie pas l'affichage tant qu'il n'est pas supérieur à 10 milles donc on voit qu'il n'ya que des chiffres supérieurs à 10 milles aériens neutre donc maintenant vous avez appris à faire les boucles fort les ifs

16:27 je vais vous parler maintenant des tableaux 1 des tableaux et des buffer d'indicateurs ça va devenir quand même un peu plus intéressant parce qu'on va attaquer vraiment le coeur du trading avec les tableaux de prix et les boeufs peur d'indicateurs donc on va retourner sur mon sur mon site où vous allez voir l'article suivant c'est ainsi donc l'indexation des données donc un buffer sas à un tableau de faire ça va s'écrire comme ça buffer

17:13 pris par exemple avec des crochets et un chiffre à l'intérieur on pas de chiffres ça quand on met un chiffre à l'intérieur c'est un tableau statique donc on s'est tu sais c'est quelque chose qui va nous permettre de stocker les valeurs maintenant l'ordre des valeurs elle est différente qu'il s'agisse d'un tableau statiques ou d'un buffer d'indicateurs on va rentrer dans le détail sur notre éditeur de code donc on revient sur notre éditeur pour créer un tableau donc voici là je crée un tableau de 10 cases la première case

18:00 6 a cédé entier des 21 tableaux de dentier de 10 cases et la première case si je veux récupérer mon premier entier dans la première case je taperai cette instruction tableau 0 ça permettra d'avoir la première valeur qui est indexé 0 donc maintenant il ya une particularité quand même parfois selon de quel tableau on parle ils sont en danger dans un ordre les données sont rangés dans un ordre différent je m'explique par le petit schéma qui va ici par exemple si on demande à une copie des prix si on me demande a créé a

18:45 réuni qu al qalam qu elle 5 par don de nous créer une copie des prix dans un tableau donc si on veut stocker les bougies par exemple dans un tableau 1 on va créer un buffer de prix et danse buffer de prix on aura toujours la bougie la plus vieille qui sera en faveur de prix index 0 et la bougie la plus récente qui sera en angle de fleurs de prix de l'index le plus élevé donc par exemple ici on a créé un buffer de prix de 10 cases donc notre note bougies la plus récente sera buffer de prix neuf et on aura accès à ces valeurs là maintenant si on prend un indicateur

19:31 technique par exemple une moyenne mobile vous voyez dans le schéma en dessous que c'est complètement différent puisque en fait on va avoir un buffer des valeurs de moyennes mobiles qu'on aura rappelé me ferait même vin par exemple pour les moyennes mobiles devant et l'index 0 sera la valeur la plus récente et l'index 9 sera la valeur la plus vieille c'est complètement l'inversé du système de stockage des prix donc il faudra y faire très très attention à cet ordre là donc quand on va vouloir appeler dans notre dans notre tableau ici si on appelle de tableau de la valeur zéro et que on parle ici d'un indicateur d'un

20:18 indicateur technique comme une moyenne mobile on aura la valeur la plus récente maintenant si on parle ici de notre tableau et que c'est un retour de prix de notre valeur le zéro sera le prix le plus ancien donc si on veut comparer des prix en moyenne mobile c'est pas forcément très pratique de le faire comme ça donc il faudra au rize est un petit peu je vous présenterai dans les codes plus tard mais en tout cas sachez qu'un tableau ça fonctionne de ces façons de cette façon là et qu'il faut faire attention à l index on appelle pour obtenir quel prix dans quelles valeurs donc maintenant on va pouvoir tester à protester on va pouvoir examiner le code

21:05 que je vous ai fait concernant l' architecture du code de robots de trading donc je vais vous le détailler avec vous donc on à l'introduction donc avec donc les le nom du fichier le copyright à mon mail encore les addictions les indications copyright tout ça c'est des choses qui sont pas forcément importante pour au codage ici on a le déchargement des blocs et après codé j'ai décidé d'en inclure aucun parce que je pense que si on veut vraiment rentré dans un apprentissage pour l'instant il vaut mieux ne pas inclure des codes preco d'aimer tout codé soi même donc pour l'instant il n'y a pas de code de modules prêts codé on aurait pu s'en servir par exemple pour simplifier la phase d'achat ou la phase de vente un de position mais pour

21:53 l'instant je préfère ne pas le faire donc ensuite on va attaquer le bloc les paramètres d'entrée l'utilisateur donc on a décidé de faire un deux groupes et ses paramètres par catégorie vous voyez que les ici une poudre comme ça va déterminer une catégorie de d'entrée derrière et les entrées elles sont déterminées ici donc on va avoir la moyenne mobile la moyenne mobile rapide la moyenne mobile en pardon ça c'est ce sont des entier que l'utilisateur va pouvoir rentrer par le par la fenêtre d'interface du robot donc par défaut je les fixe pour la mienne rapide à 20 et pour la moyenne lente à 200 mais l'utilisateur pourra les modifier pareil pour les stops loss et le tec profil et ce alors le stop loss et

22:42 vittek profit c'est en pipe un ici donc c'est des people distingue donc c'est la plus petite variation du prix 1 donc ici par exemple c'est sans laisser 10 pipe et ensuite on aura le numéro de série de notre de notre robot mais ça s'appelle un magic marcel un nombre magique ça permet de savoir quel robot à votre mp5 de savoir quel robot a fait la transaction par exemple on l'opération ici moi j'ai mis un nombre petit peu au hasard génie 2000 20 01 01 puisque janvier 1er janvier 2009 c'était juste comme ça ensuite on définira donc c'est magique m'a donc c'est c'est celui qui a enregistré dans la variable dans le

23:28 magique que l'utilisateur pourra modifier et donc ce magic ma va être défini ici dans le programme et il sera définitif pour toute la session du robot nous créerons ensuite les différentes variables qui sont utiles pour le fonctionnement de notre programme il ya le signal d'achat qui sera une variable booléenne qui sera donc soit à paul ce soir à trous si on a un signal d'achat positif qui nous dit d'acheter la roja trou si ce n'est pas le cas on aura falls et pareil pour la vente ensuite on aura le prix à ce qu est le prix bid qui sont des doubles puisque ce sont des chiffres noirs des nombres à virgule pardon des nombres décimaux on aura la même chose avec le prix de clôture de la bougie précédente et le prix d'ouverture de la bougie précédente

24:13 on va aussi qu'avec créer un une variable pour le spread une variable pour la valeur du point une variable pour le nombre de décimales du prix une variable pour le volume minimum que l'on peut traiter nombre de lots minimum qu'on peut traiter et le nombre de lots maximum qu'on peut traiter et ensuite une variable pour le capital qu'ils possédaient sur le compte par l'utilisateur en début de session ensuite on créera aussi deux variables qui sont des entier et qui serviront à stocker un nombre qui fera référence un buffer pour les moyennes mobiles lente et moyennes mobiles rapides chaque moyenne mobile aura son but faire il faudra identifier et pas et bien

25:00 savoir dans lequel est la référence de ce docteur est belle sera contenue dans cette variable voilà pour la phase qui d'initialisation enfin pas d'initialisation mais de lancement du logiciel donc on attaque maintenant la fonction d'initialisation donc lancer automatiquement comme je le disais on commence par la diva les chercher calculer la valeur du point donc on utilise la fonction symbolique au global on lui indique en paramètre le symbole qui affiché à l'écran donc on tape symbole parenthèse ça permet la fille de récupérer la valeur du symbole qui affiché sur l'écran metatrader et puis on lui demande

25:45 symbole paint le point du symbole est là on a la valeur du point ou du pipe ensuite on lui demande le nombre de décimales toujours pareil avec le même type de 2,2 commandes symbole il faut une des gardes ont classé en entier qui va nous être envoyée donc il va nous dire le nombre de décimales que possède le le prix de ce symbole ensuite pareil avec le volume le volume minimum le volume maximum et le capital de cession pour le capital de cession c'est un compte il me faut deux belles ça c'est la commande pour récupérer le capital de cession en mi temps le cobalt donc

26:33 ensuite on va passer à la phase d'initialisation des moyennes mobiles donc ici c'est la commande c'est la fonction ima pour créer une mauvaise moyenne mobile s'est il faut la paramétrer donc avec le symbole utilisé donc ça l'euro usd donc on peut on peut récupérer le symbole en faisant cette commande ici ce type de commande ou en tapant ce type de commencer ça fait appel à la même chose au même résultat vous aurez tout le temps le symbole qui est affiché à l'écran vous récupérerez son nom et puis ici c'est la période donc c'est dans quelle unité de temps vous traînez donc là vous allez récupérer l'unité de temps qu'ils aient choisi sur le graphique sélectionnés sur

27:19 lequel vous allez mettre en place votre botte la moyenne mobile lente la valeur de la moyenne mobile en donc si vous l'avez paramétrer à 200 ébahis si le robot aura 220 stockés dans cette case mémoire dans cette variable et donc prendre en compte deux cents ici le décalage de des prix à partir de quel bougies on commence à calculer la la moyenne mobile on va pas prendre zéro parce que 0 ce serait la bougie courante qui est en train d'évoluer donc on va prendre la bougie précédente donc c'est le un pour un obtenir la bougie précédente c'est ici et ensuite on calcule râle on

28:07 indiquera le mode de calcul delà de la moyenne mobile ici c'est un et moyennes mobiles simples donc csm a si on avait choisi une mobile ou moyennes mobiles exponentielles on aurait on aurait marqué ema à la place de s m à et sur quel prix va ce calcul est dans une mauvaise note moyenne mobile on décide de calculer nos moyenne mobile sur les prix de clôture donc price close donc ça c'était pour la moyenne mobile quand on fait exactement la même chose avec la moyenne rapide voilà vous voyez que ici on va aussi faire quelque chose au passage cette fonction ima on a vu tout à l'heure que les fonctions pourrait nous renvoyer des résultats ont pas il m'a nous renvoie toujours un résultat et

28:55 c'est le numéro du boeuf peur de la moyenne mobile traité donc ici nous on l'avait appelée on l'avait défini plus haut si vous vous rappelez c'est un entier c'est qui fait référence qui sera lundi ce l'index pardon du numéro du golfeur dans lequel sera contenue la moyenne mobile liant tu es ici pareil avec les moyennes mobiles rapides on aura cette variable qui contiendra son index pour s'y référer on va tester ici ensuite dans la phase d'initialisation si effectivement on nous a bien envoyé le numéro d'index pour les royals un numéro de deux peurs par non pour la moyenne mobile lente et un numéro de cooper ont la moyenne mobile rapide

29:40 donc en fait on teste s'ils sont invalides si les numéros sont invalides invalides haendel si le numéro de la moyenne mobile en est invalide ou six numéros de la moyenne mobile en rapide est invalide aussi soit l'un soit l'autre on aura un message d'erreur et on aura notre religion notre initialisation qui auront un retour en inédit fail si c'est pas le cas on sautera le bloc yves et on poursuivra la boucle normalement on y remarque rares initialisation du robot effectué avec succès ensuite on aura ici un retour de l'initialisation de la bvk d'initialisation qui reviendra en succès donc ça voudra dire que c'est simple que l'initialisation s'est bien passé et

30:26 qu'on peut enfin poursuivre le programme pour poursuivre le programme on va poursuivre avec la fonction au nautic c'est la fonction dans laquelle on va codé tout notre fonctionnement pour savoir si on si on a un signal d'achat si on a un signal de vente si on doit clôturer donc pour ça on va d'abord récupérer le prix ask par cette info symbole un pot de beurre symboles les symboles asking des fonctions qu'il faut connaître en reprendre pour qu'ils sont employés souvent donc pris un prix ask sera obtenu de cette manière et prix bide de cette manière on pourra ensuite

31:15 calculé le spread en faisant prix est moins prime id et on est au cra dans la valeur dans la variable spread on vérifiera ensuite si tous les ordres si des ordres sont ouverts et pour chacun d'entre eux on testera s'il faut un les clôtures et ou pas pour ça on va utiliser une boucle fort qui va parcourir tous les ordres vers s'il n'y a pas d'ordre ouvert donc ses positions d'opposition totale c'est la fonction position' total qui nous renvoie le nombre d'heures ouvert tant que l'index à ti qui commence à 0 est inférieur au nombre de positions total on fera cette boucle et ont ancré mantra de 1 chaque fois donc on va d'abord dans cette boucle récupérer le

32:00 numéro de l'ordre du premier ordre qui est dans notre carnet ce numéro d'ordre on va le stocker dans la variable or c'est un longue c'est pas un entier c'est un longue parce que c'est un numéro entier qui peut être très long donc il doit avoir une capacité de stockage supérieur au nombre de cycles habituels donc on appelle ça un peu longue pourquoi ben en fait c'est indiquer quand vous faites de f1 sur vous mettez sur position peut être comme ça par exemple positioned étiquette vous mettez dessus et vous appuyez sur entrée fin vous avez led qui va s'ouvrir ici et vous voyez ici le titre le type de retour c'est un longue donc seiu langue

32:47 ou langue c'est la même chose à leur tour de la fonction positionne des tic est on part à mettre donc elle recevra notre index le numéro de la position de l'ordre dans notre carnet donc par exemple 1 et 1 2 0 déjà pour commencer et ensuite avec le numéro de position il va nous calculé enfin nous récupérer le numéro d'ordre du 2 novembre ensuite avec ce numéro d'ordre on va vérifier d'abord si cette position a été passé par d'autres robots donc on va vérifier le magic ma le numéro magique

33:35 de qu'est attribuée à la position ci correspond au numéro magique de notre robot sait que c'est notre robot qui avait positionné sept ans si c'est pas le cas ça veut dire que c'est l'utilisateur qui a positionné cet ordre dans ce cas là il n'y a pas de raison que le robot à et clôturer un ordre qu'il n'a pas mis en place donc on va on va pouvoir ici comme celle menant à me régale qu'on les deux poids égal pour vérifier une condition égale dans un vif c'est le symbole de foi égal on met donc position get integer positionne basique on récupérera donc le nombre magique de l'ordre et ont comparé pour voir si c'est le même numéro magique que celui

34:22 de notre beau si c'est le cas on peut tester voir si on a un signal de clôture et si on a un signal de clôture on peut lancer la fonction clôturée avec la référence de l'ordre et notre robot ir a relancé la fonction clôturé et il exécutera si c'est pas le cas et marc on ne fait rien et on sort on continue la boucle on passe au l'ordre suivant dans notre carnet s'il n'y en a plus il n'ya plus d'hormones en carnet on continue on termine la boucle et on continue le déroulement du programme et on va tester si on est aux premiers tic donc pour ça on utilise la fonction tester premier tic si elle est folle si on est pas au

35:07 premier ticket dans s'arrête là on sort de la fonction par un retour donc return mais si c'est vrai eh ben on continue donc on n'a pas besoin de mettre si c'est vrai puisque vous faites si c'est vrai c'est si c'est pas faux donc ici on fera route autour seulement si la condition est folle donc par conséquent si lé pa falls on va poursuivre le programme donc on va ensuite tester si on a un signal d'achat et si on n'a aucune position ouverte donc testé signal d'achat égal trou et positionne total inférieur à 1 dans ce cas là on lancera notre fonction acheter si c'est pas le cas qu'on n'a pas de

35:55 signal d'achat que la position total n'est pas inférieure à 1 on va poursuivre et on va tester sur un signal de vente il faudra quand même que la position le nombre de positions total soit inférieur 1 pour pouvoir vendre autant que si on a un signal d'achat qu'on n'a pas d'ordre on pourra vendre ensuite on va calculer jusque le profit ça c'est juste pour afficher quelque chose sur l'écran de l'utilisateur pour qu' ils soient au courant en permanence du profit du robot donc on va calculer le profit on va récupérer pour ça le nouveau le nouveau sol de compte

36:40 avec de belles icônes balance et on va retirer le capital de début de session si c'est positif c'est pour nous un profit si c'est négatif c'est qu'on est en on bertin ensuite on va actualiser l'affichage du texte sur le grave donc plat je vous ai afficher plusieurs choses donc sur la première ligne on va afficher le spread donc on va convertir le spread qui est un double un nombre décimal pas le convertir en string puisque l'on ne peut afficher que du string normalement le string c'est des chaînes de caractères je vous rappelle donc pour ça on va dire qu'on a à faire un double à un angle que c'est un double qu'on le convertir en string

37:25 que ce double c'est la variable spread et qu'elle contient alors ici le nombre de décimales que il nous a été fournie par l intestin cas pour le pour le pour le cours qui étudie par exemple pour l'euro usd il va nous renvoyer 5 parce qu'on a cinq décimales on fait un peu la même chose avec le la valeur du point et avec le profit le profit on regardera seulement deux décimales puisqu'on est en europe donc donc ensuite on affichera sa à l'écran ça fera comme incline un plus on tisse lâche la chasse la chaîne ça c'est un retour à la ligne plus ligne de plus en

38:11 10 h slash anti slash n pardon excusez moi plus lignes 3 et ça nous affichera ces trois variables sur trois lignes différentes sur notre graphe voilà pour la fonction en tic donc comment ensuite attaqué à la définition des fonctions personnels qui sont créées qui sont propres aux codeurs mais qui ne sont pas donnés par un mythe estaing qui annuel 5 comme la fonction utile qui est prédéfini là on a des fonctions qui sont personnelles donc on a la première fonction qui est testé signal de clôture qui nous renvoie abreu qu ici elle nous

38:56 renvoie rhin tout le temps faux parce qu'on n'a rien coûté à l'intérieur puisque elle ne servira pas pour notre stratégie qui tiennent qui sortira forcément sur tech profit ou sur stop loss donc pareil pour la fonction suivante ce sera inutile on ne va pas la côte est c'est une fonction pour clôturer un or elle ne vous servira pas on passera ensuite à la fonction suivante qui sert à tester le premier tic donc on va créer un buffer de prix qui est un tableau d'une taille de deux cellules donc deux cases pour ranger deux bougies donc de fleurs de prix c'est un m thual rights donc c'est un type de données qui qui permet de

39:42 stocker un prix de toutes les caractéristiques d'une bougie et d'un prix sur une bougie donc le volume le prix de clôture le prix de le plus haut le plus bas d'ouverture excellent terrain et c'est donc ici on va créer les subwoofers ce d'une dimension de deux bougies ensuite on va demander à actuel de nous copier les deux bougies ici les deux bougies du symbole affichée par l'utilisateur en mettant symbole donc ça va être si on est sur l'europe et sd sur notre graphique l'installateur ou vsd et sur la période choisie par l'utilisateur

40:28 aussi donc ses utilisateurs trade en m1 les bat on va choisir m 1 pour les pour renvoyer les bougies et le décalage par rapport à la dernière bougie ici on ne décale pas envie 0 donc on prend la dernière bougie même si elle est en cours d'évolution et qu'elle n'est pas terminée et donc on demande deux bougies et de stocker tout ça dans buffer prix qu'on a dit qu'on a défini plus haut ensuite on va vérifier si notre fonction nous avons bien roulé deux bougies et on vérifiera aussi si le prix de la dernière bougie la dernière bougie ce sera la une je sais pas si vous vous rappelez de ce qu'on a dit tout à l'heure avec les tableaux mais si le prix de la dernière

41:14 bougie si on est si on a un volume pour la dernière bougie qui est égal à 1 c'est à dire qu'on est au premier tic si on a un volume de tic pour la dernière bougie qui égale à 1 c'est à dire qu'on est au premier tic on renverra trou ici donc on sortira de la fonction tester premier tic avec un renvoi de trous donc ça voudra dire qu'on est bien au premier tic de la bougie et si ce n'est pas le cas on renverra falls ça voudra dire qu'on est pas au premier tic de la bougie et ça nous permettra de traiter dans notre but principal le l'embranchement tester premier tic

42:00 voilà pour la phase pour la partie jusqu'à jusqu'aux fonctions tester premier tic on va voir maintenant notre fonction tester signal d'achat qui doit renvoyer un boulet un donc vrai rupo on n'a pas coder puisque c'est ici qu'on va codé notre stratégie notre stratégie on va la coudée entièrement ici pour l'achat et pareil pour tester signal de vente au lac aux draps dans la fonction signal de vente au même endroit et elle devra nous renvoyer trou s'il faut acheter outre ou s'il faut vendre dans le cadre de la lutte de la fonction tester signal de vente ça c'est assez simple mais la stratégie a codé peut être un peu plus complexe c'est pour ça qu'on le verra dans le

42:46 dans le prochain tuto c'est ici qu'on voudra donc ensuite on va voir comment tu es pour procéder à un achat ah ça c'est notre fonction acheter donc pour ça il nous faut le prix du stop loss le prix du tech profite donc on va faire calculer on va on va lancer la fonction calculé stop loss à chasser une fonction que celle définie comme la fonction calculé tech profit achats et savane où stocker la valeur du prix du stop loss et la valeur du prix du texte profit on va ensuite créé une requête de trading et un résultat de trading c'est à dire la requête de trading ça va

43:33 être les paramètres de l'ordre et le résultat sera le retour de l'ordre ce que ça s'est bien passé est ce que est ce que ce qu'on a eu ce que londres est passée dans ce cas là si l'ordre est passé on louera résultats avec son attribut redcode qui aura la valeur très drôle code donne ça ça voudra dire que l'ordre est bien placé donc pour paramétrer l'ordre eh bien on va donc prendre notre notre très drôle est qu'on a appelée paramètres ordre on va lui dire ce qu'on attend comme action dont paramètres or action égal et on va lui dire très d'action deal ça ça veut dire

44:19 qu'on est sur une opération de trading un pur ensuite on va lui demander lui indiquer sur quelles symbole on travaille qu'est-ce qu'on veut vendre ou à acheter ici c'est pour acheter donc on va lui dire que ici on veut acheter le symbole qui affiché à l'écran on va lui donner le volume que l'on veut acheter donc si on veut associer 01 loup ici on va lui dire le type d'ordre c'est un ordre de type buy on va lui dire à quel prix ça va être pris le à ce qu on va lui indiquer le script qu'on accepte c'est une déviation du prix on va la m à 5 ça veut dire que on acceptera une déviation de minimes de la variation

45:06 minimale du prix de 5 fois la version minimale du prix coin on va lui donner le magic marc de notre robot pour qu'il soit attribué à l'ordre et ensuite on va lui fixer le stop loss et le tec profite quand notre corps nos paramètres sont configurés on va créer une variable envoie on va la mettre à falls on va créer une autre variable et c'est qu'on va mettre à zéro et qui comptera le nombre de tentatives pour envoyer notre ordre ici la boucle wild c'est comme une boucle fort mais elle s'exécute seulement quand ces conditions derrière son vrai donc ici qu'on l'envoie n'ai

45:53 pas réalisé qu'il ya falls et que le nombre de décès est inférieur ou égal à 3 on envoie la fonction on envoie le on envoie l'ordre aux serveurs donc order scène c'est la fonction qui envoie l'ordre avec les paramètres de l'ordre est le résultat de l'ordre c'est à dire que le serveur stockera le résultat dont une dans cette variable si l'on voit se passe bien on aura l'envoi qui sera à trous toutefois si les f si la folle ça veut dire que l'envoi n'est pas passé on aura une petite erreur qui va générer et s'afficher et

46:38 ensuite on va accréditer le nombre d'essais mais ça veut dire que là on va on aura déjà fait un essai ça va passer essais à un et on va retenter de de faire de renvoyer cette fonction tant que l'on voit n'est pas à trous et que le nom de l'essai est inférieur ou égal à 3 et ensuite on sortira normalement au bout de trois pas laurent il devrait largement passé s'il se passe pas c'est qu'il ya un autre problème en tout cas on aura lancé notre fonction achetez achetez exécutera l'ordre à exécuter ou pas s'il n'est pas exécutée au bout de trois fois on abandonne et on achète plus et on continue notre programme comme je me disais tout à

47:27 l'heure on peut aussi qu d ici la stratégie pour le signal de vente d'en tester signal banques et puis pour vendre c'est le même type de paramétrage d'ordre sauf qu'ici on va mettre celle que puis si le prix de londres ce sera le prix been le reste reste sans changement pour calculer les stops loss c'est très simple on prend le prix à ce qu on lui soustrait la valeur de on pique du stop loss multiplié par la valeur du point et on soustrait la valeur du stop loss multiplié par la valeur du point au prix ascq et on obtient notre prix de stop loss achat et

48:13 la même chose pour la vente sauf que au lieu de la soustraire on la joute et on utilise le prix bid et pour le têt profit c'est la même chose je vous laisse découvrir et là on a terminé notre robot à partir de là on peut le lancer et il fonctionne sauf qu'il ne fera aucun trade puisque la stratégie n'est pas de koné dans le prochain tuto il nous restera donc simplement à côté testé signal de vente et puis testé signal d'achat ce sera l'objet du prochain tuto et on pourra à ce moment-là obtenir des ordres sur notre plateforme donc on va compiler le code donc voilà ça pompe il on voit qu'on a

49:00 aucune erreur on a des warnings mais c'est rien c'est des cdd conversion automatique pour les affichages qu'on a fait 2 de deux nombres en chaîne de caractères ce ne sont pas des erreurs importantes c'est plus des raccourcis pour moi éviter de le faire puisque je sais que la machine va le faire 1 donc on va maintenant donc pour la compil et on va maintenant aller sur un comité 5 et on va lancer notre testeur de stratégie peut le faire ici donc on va dire elles étaient cinq voire cadre stratégique enlever du coup alors je

49:46 remets cadre stratégie ici on est dans notre cannes de stratégie on va aller donc sur le mât l'origine il apparaît comme ça on va aller sur réglages on va venir choisir ici notre tuto 2 c'est le nom de notre notre notre programme on va choisir sur quel symbole on veut que ça s'exécute le thaï pran on va définir une période moi j'ai décidé de le faire juste 2 jusqu'à hier jusqu'au 10 novembre et ensuite on va laisser le reste tel que c'est paramétrer là donc on n'y touche pas en fait on faisait juste le capital de départ moi je le mets a mis

50:32 le ça permet de facilement savoir le pourcentage de bénéfices qu'on a fait on dit que c'est en euros ont choisi un effet de levier et puis on choisit une optimisation mois j'obtiens mise pas et on peut choisir le mode visuel pour activer les graphiques comme ça qu'ils vont se faire en même temps et on lance le banc de test démarrage donc là vous voyez il ya un testeur de stratégie qui s'ouvre est votre cour qui défilent sur la période sélectionnée s'il ya des ordres qui on passe vous les verrez s'afficher sur le sur l'écran ici il y en a pas parce qu'on n'a pas testé on parce qu'on n'a pas indiqué quelle stratégie on utiliser

51:19 donc notre mode robot a lancé le testeur de stratégie enfin même t5 a lancé le testeur de stratégie pour vous afficher une vision des opérations qui auraient été réalisés mais il y en a pas on n'a passé aucun prêtre c'est normal il n'y avait pas de stratégie définie mais on peut quand même aller voir ici rapidement les paramètres utilisateurs qui avaient été choisies on peut les modifier donc là c'est les paramètres par défaut mais on peut complètement les modifier ici et puis le résultat du bac tests ce qui est intéressant c'est de voir donc le capital de départ le profit total net ici on est à 0 comme je le disais rien mais il ya tout un tas de l'indication derrière qui nous seront utiles et qui font l'objet de tutos ultérieure mais pour l'instant ça ça

52:06 n'est pas ça ne peut pas être rempli puisque nous n'avons pas d'ordre de passer sous ce souci avec ce robot donc c'en est fini pour pour la partie 1 de codage donc je vais vous montrer ce qu on obtiendra la semaine prochaine puisque j'ai déjà codé la stratégie mais je vais vous montrer ce que ça donnera avec le robot une fois finalisés ça vous encouragera peut-être un petit peu un donc je choisis le robot je ne change pas les réglages je fais des marais et

52:55 là vous voyez on a des ordres qui se place alors ça va un peu vite c'est pas forcément facile à suivre comme ça mais en tout cas on voit la période qui défile avec les différents ordres qui se met en place quand c'est fini on a donc ici directement en bas à gauche sur l'onglet on peut aller voir le notre capitale a augmenté de 118 euros on peut vérifier le résultat dans le bac test en fermant le testeur de l'affichage du testeur de stratégie et en allant directement dans les mythes et cinq sur notre banc de test et on verra ici donc le profit de 118 euros avec un profit brut de 630 et une perte brute de

53:42 512 2 512 euros un autre robot a passé plusieurs positions gagnantes 38 ça fait 38 % puisqu'il en a perdu 60 et qui s'y fier 61% de positions perdantes donc la stratégie n'est pas forcément très au point même si elle est bénéficiaire donc c'est une stratégie qu'il faut pourra pas utiliser en réel évidemment c'est simplement une stratégie de démo mais vous voyez déjà que on va pouvoir acheter automatiquement des choses enfin des positions et en revendre aussi et clôturer nos ordres donc dans le prochain tuto encodera la stratégie et je vous montrerai 1 je détaillerai comme encoder cette stratégie voilà en attendant pensez à

54:29 mettre quelques pouces bleus j'en ai besoin pour que ça continue motivé pour faire ce tuto c'est pas toujours très facile surtout que là j'ai dû faire je vous cache pas que j'ai fait plusieurs coupures à à cause des travaux dans le voisinage marteau piqueur perceuse et autres donc si vous pouvez me lâcher quelques petits pouces bleu avec quelques abonnements c'est bien vous abonner comme ça vous serez informés d'une sortie de nouvelles vidéos donc probablement une nouvelle vidéo du troisième tuto pour la stratégie la semaine prochaine en attendant portez vous bien et à bientôt

Share

Résumés de vidéos YouTube