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

Création d'un expert advisor pour backtest

  • ph1l

    Bonjour à tous;
    Tout est dans le titre...
    Comment faire pour écrire un "script" pour backtester une stratégie ? Je l'ai déjà fait sur ProRealTime avec des résultats plutôt bons mais je ne trouve pas comment il faut s'y prendre sur MT4. En fait je voudrais tester trois stratégies qui combinent trois indicateurs donc pour faire simple ça donne SI indicateur1 >= à N1 ET si indicateur2 <= à N2 ET si indicateur3 = N3 ALORS achat/vente.
    Je ne comprends pas comment faire avec l'éditeur NT4
    Pouvez-vous m'aider ? Merci d'avance !
  • linuxrh — en réponse à ph1l dans son message #106238

    tu as des sites en ligne qui te permettent de générer le code, par ex :

    http://www.forexeadvisor.com/expert_generator.aspx
    Modifié le 2016-11-13 17:39:42 par linuxrh
  • PipsFisherman

    Hello ph1l,

    Pour réaliser un backtest il faut avoir un EA. L'EA permet de simuler les prises de positions en fonction des conditions.
    Si tu as envie de mettre les mains dans le cambouis je te conseil d'aller sur le lien suivant il y a toute les explications pour coder l'EA.

    https://www.forexagone.com/forum/expert-advisors-robots/fabriquer-son-ea-a-partir-d-indicateur-4364

    Une fois l'EA réalisé tu peux faire un backtest simplement/

    Tu peux faire apparaître le cadre permettant les backtests. Pour cela, il aller dans le menu Affichage > Cadre Stratégies. L’onglet suivant apparaît alors :
    - Expert Consultant (EA) : Permet de sélectionner l’EA
    - Symbole : Permet de sélectionner la parité
    - Modèle : Laisser sur chaque tick qui permet le backtest le plus réaliste. Les autres modèles sont approximatifs.
    - Période : Permet de sélectionner l’unité de temps
    - Utiliser date : Permet de sélectionner une plage de temps sur laquelle le backtest doit être réalisé. Si cette case n’est pas cocher, le backtest sera réalisé à partir de l’ensemble des données disponibles.
    - Propriétés de l’Expert : Permet d’ajuster les paramètres de l’EA.
    - Valeur initiale : Permet de lancer le backtest

    Maintenant que tu connais les fonctions de base du testeur de stratégie de MT4, tu peux dans l’onglet « Propriétés de l’Expert » indiquer les paramètres détaillés.
    Une fois tous les paramètres indiqués, cliquez sur ok puis cliquer sur « Valeur initiale » pour lancer le backtest.

    A dispo,

    PipsFisherman
  • ph1l



    Bonjour,
    Je sais à peu près tout ce dont tu parles, le souci est effectivement de (tenter) de mettre les mains dans le cambouis pour la création de l'EA donc ton lien est le bienvenu
    Modifié le 2016-11-14 19:12:30 par AliX
  • ph1l

    linuxrh, le 13/11/2016 dit :
    tu as des sites en ligne qui te permettent de générer le code, par ex : http://www.forexeadvisor.com/expert_generator.aspx


    Bonjour,
    Le code généré est-il fiable, propre et compréhensible par un non programmeur ?
  • linuxrh — en réponse à ph1l dans son message #106242

    bonjour,

    je ne suis pas programmeur et j'ai commencé avec ce genre de site pour voir quels paramètres modifier / utiliser

    donc j'aurai tendance à te répondre oui
  • ph1l

    J'ai un peu regardé vos liens et en particulier le "générateur" en ligne. J'ai un souci avec la syntaxe pour le timing: comment dire par exemple que le rsi sort de la survente (passe de inférieur à trente à supérieur à trente) il doit y avoir un instant "t" (supérieur à 30) et un instant "t-1" (inférieur à 30) pour indiquer qu'il y a un franchissement.
    Idem pour un croisement de moyenne mobiles; instant "t" le croisement a lieu et un instant "t-1" le croisement n'a pas encore eu lieu

    Je ne sais pas si je me fais bien comprendre....
  • hoebi

    ph1l, le 14/11/2016 dit :
    J'ai un peu regardé vos liens et en particulier le "générateur" en ligne. J'ai un souci avec la syntaxe pour le timing: comment dire par exemple que le rsi sort de la survente (passe de inférieur à trente à supérieur à trente) il doit y avoir un instant "t" (supérieur à 30) et un instant "t-1" (inférieur à 30) pour indiquer qu'il y a un franchissement. Idem pour un croisement de moyenne mobiles; instant "t" le croisement a lieu et un instant "t-1" le croisement n'a pas encore eu lieu Je ne sais pas si je me fais bien comprendre....


    Moi, je pense en tout cas avoir bien compris. Tu veux surtout éviter les faux signaux quant le RSI travaille ;)

    Maintenant, permet moi gentiment de te donner un conseil. Oublie le EA surtout si tu souhaites qu'il soit automatisé à 100%. Un EA basé sur un indicateur perso est déjà à la limite, impossible à mettre en place. Un EA sur des indicateurs donné à la base ne te donnera probablement pas le moindre résultat hormis perdre ton temps et ton argent. J'en ai fais une volée ces dernières années et aujourd'hui, je me concentre davantage sur le gains de temps et la précision des signaux plutôt que sur un robot de ce genre ;)

    Mon but n'est pas de te décourager et si tu préfère continuer, vas-y, t'apprendra au passage pas mal de choses. Mais tu seras confronté à un problème majeur, le temps. En trading, le temps est à la fois une valeur précieuse et totalement incertaine. Tu peux avoir un excellent signal pendant les premières minutes si tu travaille en m10 et à la toute dernière, ça s'inverse. Ou au contraire, ça ne se décide pas pendant toute la période et à la dernière minute, ça casse. Sans la déduction et un visuel, tu ne peux pas anticiper un tel mouvement et tu risque donc d'avoir souvent des faux signaux....

    Les EA sont utiles pour gagner un temps précieux en activant la position. Sur un calcul de capital risque par exemple ou pour sélectionner l'achat/vente... Si en plus, tu n'as pas de connaissance en programmation (ou l'envie d'apprendre), c'est encore plus compliqué. Je ne connais pas MT4, juste passé quelques fois sans plus. Mais en toute logique, ce que tu demandes à mon sens, nécessite une utilisation d'un langage de programmation ;)

    Voilà, j'espère avoir pu te donner une vue d'ensemble un peu plus précise ;)
  • ph1l

    hoebi, le 14/11/2016 dit :
    Moi, je pense en tout cas avoir bien compris. Tu veux surtout éviter les faux signaux quant le RSI travaille ;)


    Euh... oui et non.
    Je cherche surtout un truc pour me donner les bons signaux d'entrée mais sans rien automatiser. Pour illustrer un rsi qui sort de survente en repassant sous les 70 ne vaut rien (ou pas grand chose) si le cours est au dessus des MM qui donnent la vraie tendance (mais avec un peu de retard) ou encore un cci qui casse vers le bas alors que le rsi est à a hausse donnera aussi un mauvais signal... Pour info, je suis en général en M1, M2 et M5 mais avec des options binaires dont les paires forex sont le sous jacent
    Donc pour résumer je cherche un "indicateur ultime" pour entrer au bon moment qui combinerait à lui seul plusieurs indicateurs
    Modifié le 2016-11-15 10:43:12 par ph1l
  • hoebi

    ph1l, le 15/11/2016 dit :
    hoebi, le 14/11/2016 dit :Moi, je pense en tout cas avoir bien compris. Tu veux surtout éviter les faux signaux quant le RSI travaille ;) Euh... oui et non. Je cherche surtout un truc pour me donner les bons signaux d'entrée mais sans rien automatiser. Pour illustrer un rsi qui sort de survente en repassant sous les 70 ne vaut rien (ou pas grand chose) si le cours est au dessus des MM qui donnent la vraie tendance (mais avec un peu de retard) ou encore un cci qui casse vers le bas alors que le rsi est à a hausse donnera aussi un mauvais signal... Pour info, je suis en général en M1, M2 et M5 mais avec des options binaires dont les paires forex sont le sous jacent Donc pour résumer je cherche un "indicateur ultime" pour entrer au bon moment qui combinerait à lui seul plusieurs indicateurs


    Mille excuse, j'ai été un peu perturbé par "Achat/Vente" et EA. Je comprends ce que tu souhaite, un peu comme sur le site ici. Je pense, juste comme ça de vue, que MT4 peut le faire sans passer par la programmation. Mais sans certitudes (pour le temps). Au niveau programmation, c'est aussi faisable même si ça risque d'être un peu plus casse tête sur la période de temps. Etant donné qu'elle est fixe, en utilisant les "OpenTime" et un petit calcul entre deux "bar", c'est faisable mais à s'y casser un peu les dents... Maintenant, je ne vais pas entrer dans le détail vus que je travaille sur Ctrader. Le code en MTx est différent ;)

    Petite parenthèse au passage. Un contrôle sur les Option binaires est risqué. Moi à ta place, si tu veux réellement insister sur ce point là, je miserais davantage sur une autre idée. Les options binaires sont adaptée à un temps fixe ce que les indicateurs n'ont pas. Par contre, tu peux "jouer" (avec beaucoup de prudence) sur les chandeliers eux-mêmes dont entre autre, les englobantes, doji et les fenêtres haussières/baissières. Normalement, MT4 le fait... Perso, je l'utilise en forex sur mon indicateur et les résultats sont intéressants. Dans mon cas, il faut bien entendu d'autres signaux et/ou informations ;)
  • trdr7

    les options binaires oublie c'est la mort assurée pour ton compte à plus ou moins long terme, ça reste du jeux et non de la spéculation.

    sinon pour ce que tu veux faire, rien de mieux que tes yeux. avant 9h sélection de tes valeurs, tu places tes alertes et tu regarde quand ça sonne ;)
  • linuxrh

    ph1l, le 14/11/2016 dit :
    J'ai un peu regardé vos liens et en particulier le "générateur" en ligne. J'ai un souci avec la syntaxe pour le timing: comment dire par exemple que le rsi sort de la survente (passe de inférieur à trente à supérieur à trente) il doit y avoir un instant "t" (supérieur à 30) et un instant "t-1" (inférieur à 30) pour indiquer qu'il y a un franchissement. Idem pour un croisement de moyenne mobiles; instant "t" le croisement a lieu et un instant "t-1" le croisement n'a pas encore eu lieu


    je dirais que ça doit ressembler à ça
    linuxrh a joint une image
    creation-d-un-expert-advisor-pour-backtest-10404
  • ph1l

    hoebi, le 15/11/2016 dit :
    ph1l, le 15/11/2016 dit :hoebi, le 14/11/2016 dit Mille excuse, j'ai été un peu perturbé par "Achat/Vente" et EA. Je comprends ce que tu souhaite, un peu comme sur le site ici. Je pense, juste comme ça de vue, que MT4 peut le faire sans passer par la programmation. Mais sans certitudes (pour le temps). Au niveau programmation, c'est aussi faisable même si ça risque d'être un peu plus casse tête sur la période de temps. Etant donné qu'elle est fixe, en utilisant les "OpenTime" et un petit calcul entre deux "bar", c'est faisable mais à s'y casser un peu les dents... Maintenant, je ne vais pas entrer dans le détail vus que je travaille sur Ctrader. Le code en MTx est différent ;) Petite parenthèse au passage. Un contrôle sur les Option binaires est risqué. Moi à ta place, si tu veux réellement insister sur ce point là, je miserais davantage sur une autre idée. Les options binaires sont adaptée à un temps fixe ce que les indicateurs n'ont pas. Par contre, tu peux "jouer" (avec beaucoup de prudence) sur les chandeliers eux-mêmes dont entre autre, les englobantes, doji et les fenêtres haussières/baissières. Normalement, MT4 le fait... Perso, je l'utilise en forex sur mon indicateur et les résultats sont intéressants. Dans mon cas, il faut bien entendu d'autres signaux et/ou informations ;)


    C'est vrai que j'aurais peut-être dû écrire put/call
    Quand j'ai débuté, c'était presque exclusivement avec l'interprétation des chandeliers (étoiles du matin/soir, avalement haussier, etc.) mais j'ai très vite compris ma douleur, heureusement c'était sur un compte démo !
    Actuellement, je fais tout en "manuel" et mon taux de réussite varie entre 70 et 80% et j'utilise 4 indicateurs: le rsi, le cci, les moyennes mobiles et les bandes de bollinger mais je ne parviens pas à améliorer mon taux de réussite.
    Tu écris que ''MT4 peut le faire sans passer par la programmation", peux-tu m'en dire plus ? En créant un indicateur ? Je dois avouer que je débute avec MT4, c'est quoi les "open-time"? Et je ne connais pas du tout CTrader...
    In fine, dans mon cas, seul le bon timing pour prendre position a de l'importance
    Modifié le 2016-11-16 17:58:13 par ph1l
  • ph1l

    linuxrh, le 15/11/2016 dit :
    ph1l, le 14/11/2016 dit :J'ai un peu regardé vos liens et en particulier le "générateur" en ligne. J'ai un souci avec la syntaxe pour le timing: comment dire par exemple que le rsi sort de la survente (passe de inférieur à trente à supérieur à trente) il doit y avoir un instant "t" (supérieur à 30) et un instant "t-1" (inférieur à 30) pour indiquer qu'il y a un franchissement. Idem pour un croisement de moyenne mobiles; instant "t" le croisement a lieu et un instant "t-1" le croisement n'a pas encore eu lieu je dirais que ça doit ressembler à ça

    C'est vrai qu'il y a de l'idée ! Combien de conditions peut-on mettre et que se passe-t-il quand elles sont réunies ? ça sonne ?
  • ph1l

    trdr7, le 15/11/2016 dit :
    les options binaires oublie c'est la mort assurée pour ton compte à plus ou moins long terme, ça reste du jeux et non de la spéculation. sinon pour ce que tu veux faire, rien de mieux que tes yeux. avant 9h sélection de tes valeurs, tu places tes alertes et tu regarde quand ça sonne ;)

    Excuse moi mais je ne suis pas d'accord. Si c'était une loterie, je ne serais pas parvenu à améliorer progressivement mon taux de réussite, mais je suis d'accord sur le fait qu'il y a 90% de perdants avec les options binaires. Je fais partie des 10% restants parce que j'ai une vraie stratégie et que je m'y tiens. De plus en faisant quelques trades (si je peux les appeler comme ça) par jour, chaque trade réussi me rapporte 80% de ma mise (le plus souvent 100€) en maximum sur 5 minutes, qui peut dire ça sur le forex ?
  • AliX — en réponse à ph1l dans son message #106259

    Hello Ph1l, utilise la fonction " répondre " plutôt que " citer " quand tu réponds à quelqu'un s'il te plait, la fonction " citer " sert à faire référence à quelque chose de précis ou rappeler un post quand celui ci est vraiment loin dans une conversation ^^ merci de ta compréhension

    : je m'explique autrement; cela fait trop de répétition sur la page
    Modifié le 2016-11-16 19:42:04 par AliX
  • linuxrh — en réponse à ph1l dans son message #106258

    sur le site, apparemment on peut ajouter jusqu'à 5 conditions, je ne pense pas que ça sonne, c'est censé prendre des positions
    pour passer outre les 5 conditions, il faut étudier le code généré sur le site et le modifier à la main

    si c'est juste pour le gérer en tant qu'indicateur, tu peux créer un compte démo sur MT4, tu verras les positions prises en live
    Modifié le 2016-11-16 22:06:52 par linuxrh
  • ph1l

    Mauvaise nouvelle, je peux oublier l'EA... Le générateur en ligne n'accepte que cinq conditions (je suppose qu'il y a une bonne raison) alors que pour moi il m'en faut deux par indicateur et j'en utilise 4 soit minimum 8 conditions.
    J'ai aussi regardé pour la création d'un indicateur et là il semble que ce soit limité à huit lignes de code auquel je ne comprends absolument rien pour l'instant. Des suggestions ?
  • linuxrh — en réponse à ph1l dans son message #106283

    sur le site http://www.eabuilder.com/
    la partie indicateur est complètement gratuite,
    présenté différemment, le fonctionnement reste le même
  • ph1l

    Dans mon essai de création d'un EA, j'en ai fait un minimal et je l'ai sauvegardé.... et j'ai rien compris !
    Le nom du fichier est "nomdefichier.Mql4.mq4.html"
    Euh, c'est quoi la bonne extension pour un EA ? J'ai dû louper un truc car évidement après l'avoir mis dans le bon répertoire il n'apparaît pas dans les EA quand je lance MT

    @Merci linuxrh, je regarderai ça demain et j'en reparlerai probablement