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

Script EA OrderModify StopLoss / Takeprofit

  • Berni

    Hello tous le monde, j'espère que vos trades se passent bien !!!!

    Je suis en compte démo actuellement chez Activetrade et il se passe quelque d'étrange !! Voilà, je n'arrive pas à mettre un stop loss et

    un take profit en automatique bien que mon ordre s'exécute parfaitement. Au niveau de la log, j'ai bien le déclenchement de mon ordre

    au prix du marché et au bon moment suivant les conditions mises dans le script mais mon stoploss et takeprofit demeurent toujours à 0.

    Conscient qu'avec certains broker on est obligé d'effectuer un ordre différent pour passer ses stop loss et Take profit, j'ai donc codé mon

    EA de la manière suivante :


    Code
    extern int PERIOD1 = 5; extern int PERIOD2 = 10; extern int MA_Mode = 1; extern int StopLoss = 2; extern int TakeProfit = 10; extern double Lots = 0.04; int init() { IndicatorDigits(Digits-5); return(0); } //+----------------------------------------+ //| Exponential Moving Average | //+----------------------------------------+ int start() { int limit; int total = 0; bool baissier = 0; bool baissierBis = 0; int tailleOmbreHi = 0; int tailleOmbreLo = 0; int ticketun; int counted_bars=IndicatorCounted(); if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; //Comme il n'y a aucune précision de condition, le calcul est effectué à chaque chandelier japonais //ou à chaque bougie double EMA_5_current = iMA(NULL,0,PERIOD1,0,MA_Mode,PRICE_CLOSE,0); double EMA_10_current = iMA(NULL,0,PERIOD2,0,MA_Mode,PRICE_OPEN,0); double EMA_5_previous = iMA(NULL,0,PERIOD1,0,MA_Mode,PRICE_CLOSE,1); double EMA_10_previous = iMA(NULL,0,PERIOD2,0,MA_Mode,PRICE_OPEN,1); double prev_openprice=(iOpen(NULL,0,1)); double prev_closeprice=(iClose(NULL,0,1)); double current_open = (iOpen(NULL,0,0)); int tailleBarre=(prev_openprice-prev_closeprice)*10000; if (Open[1] > Close[1]) //test pour savoir si le chandelier précédent ou la bougie baissier = 1; //précédente est haussier ou baissier else baissier = 0; if(baissier == 1) //calcul des ombres de la bougie { tailleOmbreHi = (High[1] - Open[1]) * 10000; tailleOmbreLo = (Low[1] - Close[1]) * 10000; } else { tailleOmbreHi = (High[1] - Close[1]) * 10000; tailleOmbreLo = (Low[1] - Open[1]) * 10000; } if (baissier==1 && tailleBarre >= 13.7) { if (tailleOmbreHi >= 12.8 && tailleOmbreLo ==0 && current_open <= prev_closeprice) { if (EMA_5_prevprev > EMA_10_prevprev && EMA_5_previous < EMA_10_previous) { total = OrdersTotal(); //test pour savoir si il n'y a pas d'ordre(s) déjà ouvert(s). if (total < 1) { ticketun=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,0,0,"cas numero 1",NULL,0,Black); if(ticketun>0) //vérification de l'ouverture de l'ordre { if(OrderSelect(ticketun, SELECT_BY_TICKET) == true) { OrderModify(ticketun, Bid, Ask+StopLoss*Point, Bid-TakeProfit*Point, 0, Black); } } } } } } return(0); }


    Mon OrderSend fonctionne parfaitement, en revanche OrderModify ne semble pas fonctionner bien que je n'ai aucun message d'erreur

    dans la log (stop loss et take profit toujours à 0.00000) :

    09:28:41 ActivTrades MetaTrader 4 build 509 started (Activtrades Ltd)
    09:28:43 '564473': login
    09:28:45 '564473': login
    09:28:45 '564473': previous successful authorization performed from 90.61.131.26
    09:30:32 Expert EA_Cas GBPUSD,M30: loaded successfully
    18:37:34 '564473': order sell market 0.04 GBPUSD sl: 0.00000 tp: 0.00000
    18:37:34 '564473': request was accepted by server
    18:37:34 '564473': order was opened : #58785911 sell 0.04 GBPUSD at 1.50757 sl: 0.00000 tp: 0.00000

    Si quelqu'un pouvait m'éclairer de ses lumières je le remercie par avance ou merci à tous les traders en herbe qui pourront m'aider !!!

    Aussi j'espère que mon script pourra donner des idées à plus d'un !!!!!


    Berni
    Modifié le 2013-07-15 20:48:32 par AliX
  • AliX

    Tu sais que si tu t'es inscris via nos liens et que tu as un soucis avec Activtrades il ne faut pas hésiter à venir vers nous!
    Surtout que c'est un bon broker, donc il ne faut pas qu'ils se ternissent leur image ^^