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 :
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
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