Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Tutoriel pour un Robot simple sur Metatrader 4 (deuxième et dernière partie)

  • Papyrox

    Le tutoriel précédent vous a permis de :

    - Configurer un espace de travail sur Mt4 ;
    - télécharger un EA ;
    - s’assurer de son bon emplacement sur votre PC ;
    - faire fonctionner l’EA sur le testeur ;
    - modifier l’EA et repérer son comportement.

    La présente seconde partie tentera d’aborder comment :
    - choisir une stratégie ;
    - transformer cette stratégie en EA dans MetaEditor ;
    - visualiser sur le testeur de la plateforme Mt4 ;
    - modifier l’EA pour le rendre performant.


    CHOIX D’UNE STRATEGIE

    Certaines stratégies utilisent plusieurs indicateurs qui permettent d’aider à la prise de décision pour entrer ou sortir du marché. Pour simplifier, nous n’utiliserons qu’un seul indicateur pour l’élaboration de notre Expert Advisors.

    Le SAR Parabolique (« SAR » pour Stop And Reversal) est un indicateur développé par J. Welles Wilder en 1978. Son objectif est d’identifier des points de retournement de tendance. Il est conçu de telle sorte que la ligne des stops se rapproche des cours du titre au fur-et-à-mesure que le marché évolue dans notre sens. Lorsque le cours atteint un point SAR, on peut redouter un renversement de tendance. C’est pourquoi cet indicateur est très connu des traders qui ont coutume de l’utiliser pour placer leur stop de protection. ( Source )

    Nous allons donc développer un EA qui prendra position sur le marché en début de renversement. Ces mêmes débuts de renversement serviront également de stop de protection.

    Pour l’aider dans cette tâche, l’EA aura besoin de l’indicateur « Parabolic » qui se trouve :

    Dans le « Navigateur » (CTRL+N) de MetaTrader, dans le répertoire « Indicateurs » d’où vous pouvez soit le faire glisser sur un graphique pour le rendre actif, soit « clic droit » et « Modifier » pour le voir apparaitre dans MetaEditor.

    A toute fin utile, sur votre PC, vous le trouverez ici :
    C:\Users\votre_nom\AppData\Roaming\MetaQuotes\Terminal\2010C2441A263399B34F537D91A53AC9\MQL4\Indicators
    - Veillez à autoriser l’accès aux fichiers cachés sur votre explorateur de fichiers
    - « votre nom » est celui de l’administrateur du PC (en général)
    - « 2010C2441A263399B34F537D91A53AC9 » est réservé au compte de votre plateforme (Attention, vous pouvez avoir plusieurs comptes, donc plusieurs répertoires de ce type)

    Ce qui précède est le lien, sur votre PC, où sont stockés vos deux fichiers indicateurs :
    - Parabolic.mql4 (le code)
    - Parabolic.ex4 (le fichier exécutable compilé).

    Prochaine étape, nous préparerons le début de notre EA.
  • Papyrox

    PREPARATION DE L’EXPERT ADVISORS

    Pour préparer l’ossature d’un programme, nous utiliserons « MetaEditor », l’éditeur de texte intégré à Metatrader, spécialement conçu pour développer scripts, indicateurs et Expert Advisors. Souvenez-vous, la touche F4 vous bascule de l’un à l’autre…

    - Cliquez sur : Fichier
    - Cliquez sur : Nouveau
    - Cochez : Expert Consultant (modèle)
    - Cliquez sur : Suivant
    - Donnez un nom à votre EA : Experts\Premier_EA_V1.00
    - Cliquez sur : Suivant
    - Cliquez sur : Suivant
    - Cliquez sur : Terminer

    Rien de plus simple, la base de l’EA est sous vos yeux.
    Papyrox a joint une image
    tutoriel-pour-un-robot-simple-sur-metatrader-4-deuxieme-et-derniere-partie-10104
  • Papyrox

    MODIFICATIONS DES PARAMETRES NECESSAIRES A L’ EXPERT ADVISORS

    Le but de ce Tuto n’étant pas de vous apprendre à programmer, mais de vous montrer comment vous lancer dans la programmation, je vous suggère cet excellent PDF afin de vous parfaire en la matière :

    http://www.eole-trading.com/wp-content/uploads/2012/03/mql4

    Sans trop entrer dans le détail, nous allons remplacer notre code par celui-ci : (utilisez la méthode copier/coller)

    Code
    //+------------------------------------------------------------------+ //| Premier_EA_V1.00.mq4 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict int a=0; //Déclaration des variables int b=0; //nécessaires pour le bon double gain=5.1; //fonctionnement de notre EA int bande=350; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- double para = iCustom(NULL,0,"Parabolic",0,0); // Appel de l'indicateur " Parabolic " bogie du jour. double para1 = iCustom(NULL,0,"Parabolic",0,1); // Appel de l'indicateur " Parabolic " bogie de la veille. double para2 = iCustom(NULL,0,"Parabolic",0,2); // Appel de l'indicateur " Parabolic " bogie de l'avant veille. if(para > Ask && para>para2 &&a==0) { a=1; OrderSend(Symbol(),OP_SELLSTOP,0.1, Bid-bande*Point,3,0,0); //Un Sell Stop est un ordre de vente placé au-dessous des prix du marché. } if(para < Ask && para<para2 &&b==0) { b=1; OrderSend(Symbol(),OP_BUYSTOP,0.1, Ask+bande*Point,3,0,0);// Un ordre Buy Stop est un ordre d'achat placé au-dessus du prix du marché. } if(para>para1 || AccountEquity() - AccountBalance()>=gain) // Si conditions de fermeture présentes ou gain atteint >>> Fermeture des ordres de vente en cours. { a=0; int w = OrdersTotal() - 1; while (w >= 0) { OrderSelect(w, SELECT_BY_POS); int type = OrderType(); if (type == OP_SELL) { OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 2); } w -= 1; } } if(para<para1 || AccountEquity() - AccountBalance()>=gain) // Si conditions de fermeture présentes ou gain atteint >>> Fermeture des ordres d'achat en cours. { b=0; int ww = OrdersTotal() - 1; while (ww >= 0) { OrderSelect(ww, SELECT_BY_POS); int type1 = OrderType(); if (type1 == OP_BUY) { OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 2); } ww -= 1; } } return; } //+------------------------------------------------------------------+

    - Compilez le code (F7)
    - Basculez sur la plateforme MetaTrader (F4)

    La prochaine étape, nous testerons notre EA
  • Papyrox

    TEST DE L’EXPERT ADVISORS

    L’EA est en place et devrait normalement fonctionner afin que nous puissions recueillir les éléments permettant d’apprécier sa tenue de route. Nous allons donc le tester !

    Toujours en configuration de Testeur (CTRL+R), nous configurerons les paramètres nécessaires de cette boite de dialogue :
    - en haut à gauche, vérifiez si « Expert Conseiller » est bien sélectionné ;
    - sur la même ligne, la case sur la droite, « Premier_EA_V1.00.ex4 » est bien apparent ;
    - case Symbole, choix de la paire à traiter, = EURUSD ;
    - case Modele, = Prix d’ouverture seulement…;
    - cochez « Utiliser date » ;
    - du :2015/01/01 au :2015/12/29 ;
    - cochez « Mode visuel » ;
    - juste sur la droite, déplacer le curseur vers la droite (vitesse du test) ;
    - côté droite de la boite, Période = Daily;
    - Ecart = Actuel ;
    - Propriété de l’Expert, réglez les paramètres comme ceux repris sur l’image jointe à ce poste et terminez par « OK » sur cette nouvelle boite de dialogue ;
    - Enfin, cliquez sur « Valeur Initiale ».

    Analyse de ce qui vient de se passer au prochain poste...
    Papyrox a joint une image
    tutoriel-pour-un-robot-simple-sur-metatrader-4-deuxieme-et-derniere-partie-10105
  • Papyrox

    - Un back test vient de s’exécuter
    - Cela nous a ajouté une nouvelle fenêtre graphique « EURUSD, Daily (visual) »
    - L’EA a ouvert et fermé différentes positions sur le marché en Daily du 22/01/2015 à minuit jusqu’au 10/12/2015 à minuit.
    - C’est-à-dire qu’il a traité chaque journée pendant +/- 1 an.
    - Dans la boite de dialogue du Testeur, trois fenêtres se sont ajoutées à « Configurations et Journal » (en bas à gauche)
    o Résultats
    o Graphique
    o Rapport

    Ces trois nouvelles fenêtres permettent d’affiner notre jugement sur les possibilités de cet EA :
    Entre autres le Rapport :

    - Dépôt initial de 500€
    - Profit total net = 119.40€ (càd bénéficiaire)
    - Total des trades = 21
    - Chute maximale = 484.64€
    - Positions gagnantes = 18
    - Positions perdantes = 3
    - Etc…

    Cliquez sur Graphique pour voir sa courbe ascendante.
    Cliquez ensuite sur Résultats pour vous faire une idée des informations mises à notre disposition.

    Le prochain poste tentera de modifier l’EA pour le rendre plus performant…
    Papyrox a joint une image
    tutoriel-pour-un-robot-simple-sur-metatrader-4-deuxieme-et-derniere-partie-10106
  • Papyrox

    MODIFICATION DE L’EXPERT ADVISORS POUR LE RENDRE PERFORMANT.

    A ce stade, nous allons modifier un seul paramètre de l’EA et constater qu’il est améliorable.

    Pour ce faire :
    - Cliquez sur « Configuration » (en bas à gauche)
    - Sur cette fenêtre, à droite, cliquez sur « Modifier expert »

    Ce qui nous ramène directement sur le code dans MetaEditor.

    - Modifiez la ligne 14, et transformez la valeur 350 par 550
    Code
    int bande=550;
    - Compilez (F7)
    - Revenez à la plateforme Mt4 (F4)
    - Cliquez sur « Valeur initiale »
    - Affichez le « Rapport »

    Pour constater :

    - Dépôt initial de 500€
    - Profit total net = 837.90€ (7 x mieux)
    - Total des trades = 21 (idem)
    - Chute maximale = 216.49€ ( + de 2 x moins)
    - Positions gagnantes = 19 (+1)
    - Positions perdantes = 2 (-1)
    - Etc…

    Voilà, un petit EA qui tient +/- la route.

    A tester sur d’autres paires de devises, sur de plus longues périodes, etc… AVANT de passer en mode réel.
    Papyrox a joint une image
    tutoriel-pour-un-robot-simple-sur-metatrader-4-deuxieme-et-derniere-partie-10107
  • kouakou67

    merçi , c est interessant !
  • kouakou67

    As-tu essayé en mode réel ?
  • Papyrox

    :) Non, pas encore en réel...

    Remarque, 20 trades par année, c'est à considérer comme du long terme. Si tu cliques sur "Résultats" tu verras que tous les ordres sont passés à 00h00, c'est à dire à l'ouverture d'une nouvelle bougie. Et pareil pour les ordres de fermeture.

    Ce qu'il faudrait, c'est plancher sur l'EA pour le faire fonctionner en M1, M5 ou M15.
  • Raphael68 — en réponse à Papyrox dans son message #103956

    Papyrox, le 29/12/2015 dit :
    TEST DE L’EXPERT ADVISORS L’EA est en place et devrait normalement fonctionner afin que nous puissions recueillir les éléments permettant d’apprécier sa tenue de route. Nous allons donc le tester ! Toujours en configuration de Testeur (CTRL+R), nous configurerons les paramètres nécessaires de cette boite de dialogue : - en haut à gauche, vérifiez si « Expert Conseiller » est bien sélectionné ; - sur la même ligne, la case sur la droite, « Premier_EA_V1.00.ex4 » est bien apparent ; - case Symbole, choix de la paire à traiter, = EURUSD ; - case Modele, = Prix d’ouverture seulement…; - cochez « Utiliser date » ; - du :2015/01/01 au :2015/12/29 ; - cochez « Mode visuel » ; - juste sur la droite, déplacer le curseur vers la droite (vitesse du test) ; - côté droite de la boite, Période = Daily; - Ecart = Actuel ; - Propriété de l’Expert, réglez les paramètres comme ceux repris sur l’image jointe à ce poste et terminez par « OK » sur cette nouvelle boite de dialogue ; - Enfin, cliquez sur « Valeur Initiale ». Analyse de ce qui vient de se passer au prochain poste...


    Mon test s'arrete le 20 mars 2015
    Raphael68 a joint une image
    tutoriel-pour-un-robot-simple-sur-metatrader-4-deuxieme-et-derniere-partie-10115
  • Papyrox

    D'un broker à l'autre, les graphiques sont légèrement différents. Allez savoir pourquoi !!! ;)
    Je vois que tu travail avec XM.com
    Donc, les réactions seront différentes pour les prises de décisions de l'EA.

    Dans ton cas essaye d'augmenter ton dépôt initial à 1000. Bien que j'aie dû descendre le mien à 20 pour que ça coince !!!

    Tu devrais aussi soulagé le système quand tu passeras à la bande passante de 550 ...
    Papyrox a joint une image
    tutoriel-pour-un-robot-simple-sur-metatrader-4-deuxieme-et-derniere-partie-10116
  • Raphael68

    Oui c'est aussi ce que j'ai pensé à cause des différents spreads de nos brokers.
    La j'ai un super résultat 112 trades positifs sur 115 avec 250 euro et une bande passante à 550 c'est que du bonheur lol
    Raphael68 a joint une image
    tutoriel-pour-un-robot-simple-sur-metatrader-4-deuxieme-et-derniere-partie-10118
  • Papyrox — en réponse à Raphael68 dans son message #103985

    Superbe Raph,

    Sur quelle période ?
    Je vois que tu est en M1.
  • Raphael68 — en réponse à Papyrox dans son message #103986

    du 15/12 au 30/12/ 2015
    En M1 C'est pas bon ?
    Peut-on sauvegarder nos préférence de visuel pour les graphiques (F8) ? ou à chaque nouveau graf il se met par défaut ?
    Je vois que FxPro donne des facilités pour créer son propre robot.

    https://www.forexagone.com/blog/727-creez-facilement-votre-propre-robot-de-trading-avec-fxpro-quant
  • Papyrox — en réponse à Raphael68 dans son message #103989

    En M1, au premier coup d'œil, il n'exécute pas les ordres pour lesquels l'EA a été conçu. C'est à dire, prise de position au renversement de la parabolique. Néanmoins, le phénomène est à creuser...

    Je ne sais pas si tu as essayé sur le demo d'FxPro pour voir la réaction ? FxPro limite les prises de position à 70 !!!
    Tu peux me confirmer si c'est pareil chez XM.com ?

    Apparemment, les seuls paramètres que tu puisses adapter se font ici : CTRL+O

    Pour FxPro Quant, j'avais déjà vu, mais pas encore tâter ;)
  • sebecr

    bonjour
    super article, je suis nouveau dans le trading et j'ai essayé un copier collé de votre article, mais beaucoup d'erreur apparaissent, je suis sous mtq5 que faut il que je fasse pour que ca fonctionne.

    merci d'avance de votre reponse
  • DBtrader

    Merci beaucoup pour votre contribution. Combien de temps cela vous prend-il pour voir de bons résultats?