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

Un système de trading clé en main gratuit...

  • furynick

    Le stop loss fixe ça me gêne un peu quand même. Si le cours prend 300 pips puis revient sur son prix d'ouverture on aura une perte de 200 pips ... avec un TS on aurait eu que 100 pips de perte ce qui est loin d'être négligeable.

    Ici on ne parle pas de laisser le TS faire le boulot comme c'était le cas dans la toute première version de l'EA (provoquant ainsi plus de perte que de gains), mais bien de couper au moins une partie du trade si le BBand s'inverse. Le manque à gagner ne sera alors que de quelques pips.

    Je vais essayer de mettre en œuvre le Breakeven (tant que j'y suis) ... on passera donc à la 1.3, de toutes façons on ne va plus tester l'EA avant dimanche soir, j'ai le temps de coder tranquillement.
  • furynick

    J'ai eu ton mail Eric ... donc si j'en crois ton analyse la prise de position est bonne au delta près du problème de "market context busy" (résolu en 1.2e).

    Je vais donc pouvoir attaquer le Breakeven en toute sérénité.
  • Sentenza

    voici un petit rapport après une nuit, une journée et une soirée de Safe3 v1.2b (soit de 01h à 22h)

    compte démo de 250€ chez Alpari, 11 trades ouverts, 5 trades perdants entraînant une perte totale de 13.81€

    les 6 trades restants sont toujours ouverts, incluant 2 très légères pertes et 4 en bénéfices avec un gain total potentiel de 30.29€

    au total, j'ai une équité de 266.48, soit 16€ de bénéfice sur environ 24h, ce que j'estime être très correct comme résultat (les lots sont de 0.02) dans la mesure où le but sera soit d'augmenter le capital (et donc les lots), ou de multiplier les comptes
  • Forex88

    @jpa
    J'ai du mal m'exprimer, il était tard aux Philippines ou plutôt tôt le matin...
    Quand j'ecrits il faut se concentrer sur le trade lui même, je pense a l'EA, comment arriver a le faire tourner correctement en fonction du système et non manuellement.
  • Forex88

    En fait mon aversion du trailing stop vient du fait que je n'avais eu en exemple que du trailing stop appliqué avec un breakeven ce qui fait qu'il fallait attendre le breakeven pour que le trailing stop se mette en place. Ce qui peut s’avérer dangereux si le trade part dans l'autre sens sans que ce breakeven soit atteint...

    Je viens de faire des recherches et j'ai compris mon erreur... Il existe deux façons de coder un trailing stop:

    Trailing stop activé immédiatement

    Voici un exemple avec un trailing stop fixé arbitrairement à 20.

    Code
    int trailing_stop = 20; double ts; for (int i = OrdersTotal()-1; i >= 0; i --) // on parcourt tous les ordres { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderType() == OP_BUY) // trailing stop pour un ordre d’achat { ts = Bid-(Point*trailing_stop); // calcul trailing stop if (OrderStopLoss()<ts) // test si nouveau plus haut OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White); } if (OrderType() == OP_SELL) // trailing stop pour un ordre de vente { ts = Ask+(Point*trailing_stop); // calcul trailing stop if (OrderStopLoss()>ts) // test si nouveau plus bas OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White); } } }



    Trailing stop activé après break even



    Code
    int trailing_stop = 20; double ts; for (int i = OrdersTotal()-1; i >= 0; i --) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { if (OrderType() == OP_BUY) { ts = Bid-(Point*trailing_stop); if (OrderStopLoss()<ts && (Bid-OrderOpenPrice())>=(Point*trailing_stop)) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White); } if (OrderType() == OP_SELL) { ts = Ask+(Point*trailing_stop); if (OrderStopLoss()>ts && (OrderOpenPrice()-Ask)>(Point*trailing_stop)) OrderModify(OrderTicket(),OrderOpenPrice(),ts,OrderTakeProfit(),0,White); } } }

    ==>On apprend tous les jours...
  • furynick

    En fait, pour être plus précis sur la façon de faire, voici ce que je pense mettre en place :
    - deux trades sont ouverts avec un stop fixé par le BBand qui me semble être un bon point de départ
    - le trailing stop de 200 entre en action dès que le stop des trades est défavorable
    - si le BBand s'inverse, le 2ème trade est clôturé et le TS passe à 50 pips, ça permet de laisser passer les pullbacks
    - si le 1er trade est toujours ouvert et que le BBand repasse sur la même tendance le TS repasse à 200

    Les deux niveaux de TS seront paramétrables.
    Donc, dans le monde idyllique des bisounours, deux trades sont ouverts, le premier s'arrête à 50pips de moins que le maximum de la tendance et à chaque évolution franche de la tendance lui est associé un 2ème trade de "profitabilité"
  • Forex88

    Cela semble intéressant comme méthode.
  • jpa

    @Furynick et Forex88,

    Bonjour,
    Je viens de prendre connaissance de vos posts que je les trouve forts pertinents et j'avoue ne pas avoir de remarques (pour l'instant) à faire.
    Toutefois concernant l'ergonomie j'ai testé l'EA EOT disponible sur le site de Furynick, et j'apprécie tout particuliérement le rectangle coloré défini par les positions longues et shortes.
    D'un seul coup d'oeil on peut voir dans quelle fourchette on est situé. Enfinje ne trouve les versions supérieures à 1.2b. Bon courage, bon Week-end et encore félicitations à tous
  • furynick

    Les rectangles pourraient être intéressants ... je me note ça.

    Pour les versions récentes elles ne sont tout simplement pas en ligne car je travaille sur une version 1.3 intégrant le Breakeven. J'espère pouvoir la publier avant la fin du WE pour que tout le monde puisse la tester la semaine prochaine.
  • Forex88

    Merci pour ton travail Furynick...
  • Forex88

    @Furynick
    Le magic number est il le même pour tous les trades selon une version ou peut il changer ?
  • jpa

    @furynick,

    Voici le code du rectangle que on peut installer:

    Variables globales:
    Code
    extern bool Rectangle = true;

    Code à inserrer après :

    Code
    default: sPeriod="MN"; break; } // ----- Rectangle ---------- double opLongPos, opShortPos, shortTP, longTP; double EntryL, topL, bottomL, EntryS, topS, bottomS; datetime EntryTimeL,EntryTimeS; color colRangeL=C'0,0,100', colRangeS=C'100,0,0'; int cntRect,i; if(OrdersTotal()!=0) { for(cntRect=0; cntRect<OrdersTotal(); cntRect++) { OrderSelect(cntRect,SELECT_BY_POS); if( OrderType()==OP_SELL && OrderSymbol()==Symbol() ) { opShortPos=OrderOpenPrice(); shortTP=(opShortPos-Ask)/Point; } if( OrderType()==OP_BUY && OrderSymbol()==Symbol() ) { opLongPos=OrderOpenPrice(); longTP= (Bid-opLongPos)/Point; } } } ObjectDelete("RangeL"); ObjectDelete("RangeL_Label"); ObjectDelete("RangeS"); ObjectDelete("RangeS_Label"); int cnt0buy=0, cnt0sell=0 ; for ( i=0; i<OrdersTotal(); i++) { if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol()==Symbol()) { if( OrderType()==OP_BUY) { EntryL = OrderOpenPrice(); EntryTimeL = OrderOpenTime(); if(Rectangle==false) { topL = OrderOpenPrice(); bottomL = OrderOpenPrice()+30*Point; } else { topL = OrderStopLoss(); bottomL = OrderOpenPrice(); } datetime leftL =EntryTimeL; datetime rightL =TimeCurrent(); ObjectCreate("RangeL",OBJ_RECTANGLE,0,leftL,topL,rightL,bottomL); ObjectSet("RangeL",OBJPROP_BACK,true); if(OrderTakeProfit()==0) ObjectSet("RangeL",OBJPROP_COLOR,Green); else ObjectSet("RangeL",OBJPROP_COLOR,colRangeL); } if(OrderType()==OP_SELL && opShortPos!=0) { EntryS = OrderOpenPrice(); EntryTimeS = OrderOpenTime(); if(Rectangle==false) { topS = OrderOpenPrice(); bottomS = OrderOpenPrice()-30*Point; } else { topS = OrderOpenPrice(); bottomS = OrderStopLoss(); } datetime leftS =EntryTimeS; datetime rightS =TimeCurrent(); ObjectCreate("RangeS",OBJ_RECTANGLE,0,leftS,topS,rightS,bottomS); ObjectSet("RangeS",OBJPROP_BACK,true); if(OrderTakeProfit()==0) ObjectSet("RangeS",OBJPROP_COLOR,Red); else ObjectSet("RangeS",OBJPROP_COLOR,colRangeS); } } }
  • furynick

    @Forex88 : Tant que le paramètre forceNewMagic reste à false sur l'ensemble des EA tous les ordres ont le même n° de magic. C'est dépendant de l'EA uniquement.

    @jpa : merci pour l'extraction, je mettrai ça dans la 1.3 (peut-être 1.3a après avoir débuggé le breakeven).
  • furynick

    Je suis en train de backtester l'EA pour le débugger ... et je m'aperçois que, tout comme l'ouverture de position manuelle, un EA ne peut pas prendre deux positions simultanément.

    En backtest, deux ordres d'ouverture séquentiels sont en fait ouverts avec 17s d'intervale. Le Slippage permet d'autoriser le passage de l'ordre avec une déviation (par défaut de 3 pips) et ça se vérifie en backtests.
  • furynick

    la v2 est en route ... le fonctionnement commence à bien coller à ce que je prévois.

    Encore quelques détails (mais ces détails commencent à peser lourd en temps de codage) et je devrais pouvoir la publier.
  • Harrakis

    beau boulot fury !

    quelle motivation ! ^^
  • Forex88

    C'est fou ce que l'on peut faire avec l'informatique mais peu se rendent compte du travail qu'il a fallu déployer pour y arriver...
    Un grand merci a toi Furynick
  • furynick

    vous emballez pas trop, j'ai des problèmes de disque dur avec mon serveur donc je ne suis pas sûr de pouvoir publier la v2 d'ici ce soir.
  • Forex88

    AHHHHHHHH !!!!!!!! l'informatique et ses tourments !
    Bon courage Furynick !
  • jahben974

    Bonsoir,

    Je voudrais avoir un renseignement sur ta méthode, est-ce que les paramètres sont différent si je passe sur une période de 5 minutes ?

    merci d'avance