Mql4 pour les nuls

download Mql4 pour les nuls

of 141

Embed Size (px)

description

Guide de formation pour Metatrader (MT4)

Transcript of Mql4 pour les nuls

  • 1. Sommaire MQL4 pour les nuls1. Introduction2. MetaEditor3. Les types de donnes4. Les variables5. Expressions et oprateurs6. Les fonctions7. Instructions conditionnelles et boucles8. Indentations, commentaires et syntaxe9. Les prprocesseurs10. Votre premier expert advisor #111. Votre premier expert advisor #212. Fonctions sur les barres13. Fonctions temporelles (date et heure)14. Votre premier expert advisor #315. Fonctions sur les objets (texte et graphique)16. Votre premier expert advisor #417. Fonctions de trading18. Votre premier expert advisor #519. Fonctions communes20. Votre premier expert advisor #6
  • 2. 01 - IntroductionMQL4 est labrviation utilise pour dsigner MetaQuotes Language 4.MetaQuotes est la compagnie qui a dvelopp la plate forme de trading Metatrader. Pourrendre cette plateforme encore plus attractive que celle de ses concurrents, MetaQuotesa galement dvelopp un langage de programmation interne et propre au programmepermettant aux utilisateurs de programmer leurs propres stratgies de trading.Tout comme la plateforme de trading MetaTrader, le langage a lui aussi volu. Lesprdcesseurs du MQL4 tait le MQL puis par la suite le MQL II avant larrive du MQL4.Des rumeurs annoncent dailleurs le lancement du MQL5 au courant de lanne 2009.Bien que propre au programme, ce langage est trs similaire dans sa structure au C ouau C++ comme vous pourrez le voir par la suite pour ceux qui connaissent dj lun deces langages.La cration dun programme sur MetaTrader se rvle un peu plus complexe que surcertaines plateformes (on pensera notamment Visual Chart ou TradeStation) mais leMQL4 nen demeure pas moins lun des langages les plus labores (on pensera ici Visual Trading et ses limitations) et des plus rpandus sur internet en juger par la laquantit de programmes libres, forum, tutoriels et support de la part des concepteurs ouautres. La plupart de ses ressources sont souvent en anglais ou en russe (MetaQuotestant une compagnie russe) mais nous esprons que notre portail pourra vous apportertoutes les ressources dont vous pourriez avoir besoin et ce en franais.Le MQL4 vous permet de crer les 3 types de programmes suivants : Experts Consultants ou EA (Expert Advisors en anglais) LEA est un programme permettant dautomatiser vos stratgies de trading en passant automatiquement les ordres bass sur votre stratgie, en grant vos trades existants ou encore en gnrant des signaux de trading. Indicateur MetaTrader dispose dj dune bibliothque trs complte dindicateurs techniques mais vous laisse galement la possibilit de modifier des indicateurs existants ou encore den crer de nouveau. Un indicateur sert analyser et interprter les donnes du march pour vous aider prendre vos dcisions dentres ou sorties. Script Un script est un programme destin excuter un nombre daction prcis de faon ponctuelle. En effet, contrairement un EA qui analyse le march chaque tick (= changement de cotation), le script nest actif que lorsque lutilisateur en fait la demande et ne fonctionnera quune fois. Un script peut donc tre utilis pour effectuer une opration que lon ne dsire pas voir se rpter moins den faire la demande comme par exemple la clture de toutes les positions ouvertes.Pour rsumer, un EA est un programme capable de passer des ordres sans interventionhumaine et qui va fonctionner tant et aussi longtemps que son algorithme lui permet dele faire. Un script est galement mme de passer des ordres mais il ncessite uneexcution manuelle et ne fonctionnera quune seule et unique fois. Un indicateur, quant lui, ne peut pas passer dordres mais fonctionnera tant et aussi longtemps que sonalgorithme le lui permettra. Nous reviendrons par la suite sur la dfinition dalgorithme etla structure dun programme en MQL4 mais retenez simplement pour linstant quil sagitdune suite dinstructions comprhensibles par MetaTrader visant la rsolution dun
  • 3. problme ou ralisation dune action. En fait, il sagit tout simplement de la logique defonctionnement que devra suivre le programme que vous avez crit.Pour exemple, ci-dessous, la logique de fonctionnement possible pour un EA.Ceci clture donc notre introduction - dans le prochain article de cette srie, nousparlerons plus en dtails du compilateur et diteur de code intgr MetaTrader, jainomm MetaEditor.02 - MetaEditorPrsentation :Par dfaut, peu importe la version ou le courtier, linstallation de MetaTrader comprend unIDE (Integrated Development Environment) appel MetaEditor et qui comprend lesfonctions suivantes : Un diteur de code capable didentifier et mettre en vidence les diffrentes composantes et fonction du langage MQL4. Un compilateur intgr et trs simple dutilisation. Un dictionnaire sur les diffrentes fonctions et commandes en MQL4. Un accs direct la base de donnes du site mql4.com comprenant aussi bien des experts, des indicateurs que des scripts ou des articles avec la possibilit de tlcharger directement dans MetaEditor ces fichiers.Ci-dessous, une capture dcran de la fentre principale par dfaut de MetaEditor.Comme vous pouvez le voir sur limage, lcran est divis en 3 fentres principales. 1 quinous sert coder, 2 pour voir les erreurs de compilation lorsquil y en a, avoir accs lalibrairie en ligne et au dictionnaire. 3 sert visualiser le contenu du dossier expertspropre votre installation de MetaTrader et donne galement un accs facile audictionnaire et au moteur de recherche de ce dernier.
  • 4. Lancement :Pour lancer MetaEditor, plusieurs options soffrent vous, vous pouvez soit aller chercherdirectement le fichier excutable dans les dossiers dinstallation de MetaTrader. Le fichierMetaEditor.exe se trouve la racine mme de linstallation. Vous pouvez galementutiliser le raccourci prsent dans votre menu dmarrer ou bien utiliser licne delancement rapide prsente dans MetaTrader dans la barre doutils en haut.Compilation :Les menus de MetaEditor sont suffisamment ressemblant nimporte quel traitement detexte ou application windows que jestime quil nest pas ncessaire de les passer enrevue. Nanmoins, il est une fonction sur laquelle on ne peut pas faire limpasse :"Compiler". Pour compiler vos programmes dans MetaEditor, vous pouvez soit cliquersur F5, soit cliquez sur le bouton Compiler situ dans la barre doutils en haut commevous pouvez le voir ci-dessous.
  • 5. Pourquoi donc est-ce ncessaire de compiler vos programmes ?Plusieurs raisons cela. Premirement, MetaTrader est incapable dinterprter les fichiersdont lextension est *.mq4 qui se trouve tre lextension de tous vos programmes noncompils et de la plupart des experts et indicateurs que vous trouverez sur internet. Ceformat vous permet douvrir le fichier dans MetaEditor et voir le code source duprogramme. Pour pouvoir tre lu par MetaTrader, un expert ou tout autre programme doitavoir lextension *.ex4.Lorsque vous compilez un fichier, vous conservez donc votre fichier source en *.mq4 etvous obtenez un nouveau fichier en *.ex4. Il nest pas ncessaire de disposer du fichiersource pour que le fichier compil fonctionne et cest l la deuxime raison lacompilation. Si vous dsirez protger votre code des regards indiscrets mais que vousdsirez tout de mme partager votre programme, il suffit de le compiler et de distribuerle fichier *.ex4 impossible ouvrir. Attention, le fait de le compiler ne protge votre codeque de faon sommaire. En effet, il est relativement ais pour un programmeur de coderun dcompilateur qui viendra bout de votre fichier *.ex4 et qui plus est, ce nest pasillgal au sens de la loi. Nous reviendrons l dessus plus loin lorsque nous dcrirons lesdiffrents types de protections possibles.Ltape de compilation est trs utile aussi notamment pour vrifier la fiabilit de votrecode. En effet, si ce dernier comporte des erreurs, celles-ci apparatront dans la fentredu bas (2) vous permettant de voir ainsi plus facilement le type derreur et la ligne decode en question.Utilisation :Pour ouvrir un programme existant, il suffit simplement de reprer celui-ci dans lafentre de droite (3) si celui-ci se trouve dans votre dossiers experts ou de cliquez deuxfois dessus. Lextension est par dfaut assign MetaEditor. Pour crer un nouveauprogramme, cliquez sur fichier puis sur nouveau. Une fentre apparatra alors avec lapossibilit de choisir quels types de programmes vous dsirez programmer. Cettedmarche permet de simplifier votre tche en vous fournissant une page prformateavec la structure pour votre futur programme. Une fois que vous aurez choisi votre typede programme et cliquer sur suivant, une nouvelle fentre apparatra vous permettant decomplter les informations sur votre programme tels que le nom, les informations dedroits dauteur et aussi les paramtres pour votre programme. Nous verrons dans lapartie suivante quels sont les types de paramtres permis et comment le MQL4 y faitrfrence.03 - Les types de donnesLe MQL4 tant un driv du C/C++ est par dfinition un langage typ. Cela signifie que leprogramme ne peut interprter et utiliser que des donnes appartenant des typesspcifiques et que certaines oprations ne peuvent tre effectues quentre donnes dumme type (un rel avec un rel, un entier avec un entier etc).Comme nous le verrons par la suite, il convient donc de prciser le type dune variable oudonne lors de sa dclaration