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

655 pips (les sexy, pas les pipettes) en 4 mois sans aucun indic.

  • furynick

    J'ai fait un truc complètement con, j'ai pris EURUSD en M30, j'ai tracé 20 pips au dessus de la première barre haussière de la journée ou 20 pips en dessous si la 1ère barre est baissière.

    Tenez-vous bien, depuis la dernière semaine de janvier, 69 trades aurait été gagnants contre 17 perdants soit un ratio de 4 pour 1. Si les trades perdants sont clôturés en fin de journée 725 pips sont perdus contre 1380 soit 655 pips de gain net (j'ai compté 2 pips de spread pour être tanquille).

    Aucun indicateur !

    Voilà le code du script (ce n'est pas un indicateur ni un EA) pour ceux qui voudraient écarquiller les yeux :
    Code
    //+------------------------------------------------------------------+ //| pipsTarget.mq4 | //| Copyright © 2011, Nicolas Tuffier | //| http://www.furyweb.fr/forex/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, Nicolas Tuffier" #property link "http://www.furyweb.fr/forex/" extern double tgtpoints = 0.002; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int nextbar = Bars; double sl, tp; string name = ""; double profit, loss, spread = 0.0002; //MarketInfo(Symbol(), MODE_SPREAD)*Point*MathPow(10, Digits % 2); bool good; datetime end; int i, j, p, l; //---- ObjectsDeleteAll(0); for (i = Bars; i>=0; i--) { if (TimeHour(Time[i]) == 0 && TimeMinute(Time[i]) == 0) { nextbar = i - 1; name = TimeYear(Time[i])+" "+TimeDayOfYear(Time[i]); } if (i == nextbar) { end = Time[i+1]+86400; if (Open[i+1] < Close[i+1]) { // first bar of day is bullish tp = Close[i+1]+tgtpoints+spread; if (High[iHighest(Symbol(), Period(), MODE_HIGH, 1440 / Period(), i - 1440 / Period())] > tp) { good = true; for (j = i; j >= i - 1440 / Period(); j--) if (High[j] > tp) { end = Time[j]; break; } } else { good = false; loss += Close[i+1] - Close[i - 1440 / Period()]; } } else { // first bar of day is bearish tp = Close[i+1]-tgtpoints-spread; if (Low[iLowest(Symbol(), Period(), MODE_LOW, 1440 / Period(), i - 1440 / Period())] < tp) { good = true; for (j = i; j >= i - 1440 / Period(); j--) if (Low[j] < tp) { end = Time[j]; break; } } else { good = false; loss += Close[i - 1440 / Period()] - Close[i+1]; } } ObjectCreate(name+" TP", OBJ_TREND, 0, Time[i], tp, end, tp); ObjectSet(name+" TP", OBJPROP_RAY, false); if (good) { ObjectSet(name+" TP", OBJPROP_COLOR, White); p++; } else { ObjectSet(name+" TP", OBJPROP_COLOR, Red); l++; } } } tp = p; sl = l; Comment("#Profit : ", p, "\n#Loss : ", l, "\nRatio : ", NormalizeDouble(tp / sl, 2), "\nLoss : ", loss); //---- return(0); } //+------------------------------------------------------------------+
  • furynick

    Pour que le script soit plus souple vous pouvez ajouter au début
    Code
    #property show_inputs

    Et remplacer le commentaire final pour avoir la synthèse directement :
    Code
    Comment("#Profit : ", p, "\n#Loss : ", l, "\nRatio : ", NormalizeDouble(tp / sl, 2), "\nProfit : ", p*tgtpoints, "\nLoss : ", loss, "\n\nTotal : ", p*tgtpoints-loss);
  • geogeo38 (invité)

    désole mais je n ai pas compris.
    une ligne de 20 pip en dessous . une ligne oblique ?
  • babs

    Super intéressant, je viens de lancer ton script et je trouve ça bluffant.

    Es tu allé plus loin? D'autres paires?
  • TheTraderUnited

    Mercii pour ton travaille déjà :)

    quelque question il y a plus de gain que de perte dit moi ?
    et que veut tu dire par rendre plus souple le script et a quoi sert ca "Et remplacer le commentaire final pour avoir la synthèse directement "
  • Will

    J'arrive pas à créer le fichier mq4, y a moyen de télécharger le script sur furyweb ?
  • furynick

    J'ai mis le script en ligne

    @geogeo38 : non, une ligne horizontale à partir de la 2ème barre d'une journée à la fin de la journée 20 pips au dessus ou en dessous de la clôture de la 1ère barre de la journée.

    @TheTraderUnited : oui, il y a plus de gain que de perte, presque deux fois plus de gains.

    Le script doit être positionné dans le répertoire experts\scripts de votre MT4
  • furynick

    Il semblerait que mon script ne fonctionne que le WE ... je regarde, je corrige et je publie.
  • furynick

    Voilà, je pense que les bases sont posées.

    Les deux prochaines étapes sont :
    - filtrer les faux signaux (en utilisant plusieurs barres par ex.)
    - optimiser les gains (un trailing stop, un breakeven, un pyramidage)

    Je suis ouvert à toutes les suggestions.

    Voici les ratio gain/perte que j'ai pu trouver sur quelques paires (du plus faible au plus important) :
    USDCAD : 1.5
    USDJPY : 2
    NZDUSD : 2.44
    EURCHF : 3.67
    GBPUSD : 3.72
    AUDUSD : 4.25
    EURUSD : 4.31
    GBPCHF : 9.5

    Et le meilleur pour la fin :
    GBPJPY : 15.67 (47 trades gagnants contre 3 perdants soit 471 pips de gains)
  • Will

    Merci bien furynick, je teste ça en H1.
  • Oyapoke

    STP Furynick, peux-tu expliquer le fonctionnement? J'ai installé le script dans le répertoire experts/scripts. Si j'ai bien compris il lancera un ordre automatique lorsque le cours montera ou chutera de 20 pips sur ou sous le cours de clôture de la première bougie T30.
    Comment paramètre-t-on la taille des lots: tgt points???
    Y a-t-il un SL?
    Il faut lancer le script chaque soir?
    Merci par avance pour tes explications.
    Cordialement
    Oyapoke
  • Oyapoke

    Juste une question supplémentaire: comment est-on certain que le script est bien lancé sur la plate-forme une fois que l'on a "cliqué"? Pour un EA on a le petit icone en haut à droite mais pour un script?
    Bons trades!
    Oyapoke
  • furynick

    Oyapoke, un script n'est pas un EA, il n'ouvre pas de position.

    Les scripts permettent de faire une analyse, ici je souhaitais connaitre le ratio de trade gagnants en me basant sur la forme de la 1ère bougie de la journée.

    Si je prends l'exemple d'EURUSD il y a 4 chances sur 5 que tu puisses prendre 20 pips dans la journée en posant un ordre à 00h30 à l'achat si la 1ère bougie clôture à la hausse et inversement.
    Cependant, même si le ratio est largement positif, les pertes restent importantes sachant qu'il n'y a pas de SL et que les positions sont bouclées à 00h00 le lendemain.

    La suite du travail consiste à trouver le moyen d'optimiser les gains pour augmenter les bénéfices (se limiter à 20 pips c'est un peu dommage) et limiter les pertes ou trouver un moyen de confirmer la direction à prendre.
  • Oyapoke

    Furynick,

    Merci pour ta réponse!
    cordialement
    Oyapoke
  • furynick

    Le pyramidage me parait pas mal, en fixant 3 TP à 20, 30 et 35 pips de l'ouverture avec un breakeven au 1er TP puis un trailing stop dynamique (plus le cours prend des gains plus le TS se réduit) de 35 pips à partir du 3ème TP on devrait avoir quelque chose de sympa.

    Pour les pertes on peut imaginer une martingale d'un jour sur l'autre, vu la ratio gagnant/perdant les risques sont très limités et on a un robot 100% gagnant !

    En plus, vu qu'il n'y a qu'un seul trade par jour c'est hachement moins stressant (d'autant que dans la majorité des cas les bénefs sont empochés avant le réveil ... gagner des sous pendant que je dors, j'aime bien le concept) !

    Aller, je me lance dans le codage de FuRyXfirstBar !
  • Philippe

    J'ai déjà vu une technique similaire sur le marché des actions. C'est une variante de la technique du breakout en day trading. Tu traces les + hauts et les bas de la première heure de cotation, tu passe à l'achat 0.1% au-dessus ou tu vends 0.1% en-dessous du plus haut ou du plus bas des 60 premières minutes.

    A ce stade, il est important de ne rien faire pendant ces 60 premières minutes et de travailler en UT 30M. J'imagine que pour le forex il faut y faire quelques adaptations (comme tu semble l'avoir fait).
  • jpa

    FuryNick,

    Je viens de tester ton idée, elle est simple mais très efficace.
    Pour la compléter ne serait-il pas possible d'ajouter au départ de la mise en route une tendance calculée sur le croisement de 2 moyennes mobiles par exemple.
    Soit en tendance haussière ne prendre que des longs et réciproquement.
    Exemple en UT30 pour le script et H4 pour la tendance.
    Sinon bon courage.
  • furynick

    J'avais essayé avec un filtre de tendance (une seule MM suffit, il faut simplement déterminer sa pente) mais outre le fait que les faux signaux ne sont pas filtrés bon nombre de trade gagnants ne sont pas passés ce qui détruit les gains sans limiter suffisamment les pertes.

    Vu que le ratio tourne autour de 4 pour certaines paires je me dis qu'une martingale simple basée sur les pertes à récupérer et le manque à gagner d'une journée sur l'autre devrait suffire. Le principe est simple, il n'y a toujours qu'une seule position ouverte par jour, la taille de la position est basée sur le pourcentage de risque plus la récupération des pertes de la veille. Ces dernières sont cumulées si elles interviennent sur plusieurs jours (cas très rare). On peut ainsi facilement éviter la multiplication des trades perdants et borner la taille maximum d'une prise de position pour éviter les trop gros risques.

    Je me lancerai cet aprem dans le codage et je vous tiens au courant.
  • Lorka85

    punaise bonne idée, je suis ça de pres fury !

    a la limite sur les gbpjpy on peu mettre un stoploss 10X superieur au TP on ai gagnant niveau probabilité meme si ca tape de temps en temps ^^
  • Lorka85

    Et c'est du gmt+1 ta 1ere bougie m30 ?
    Sinon il y a un soucis avec le site pour copié coller le code, ca donne ça dans le presse papier :

    Lorka85 a joint une image
    G3192BA