Comment coder ? - page 144

 

ceci est faux : if(totalOrders==0 && Magic==OrderMagicNumber() &&

OrderSelect(i-1 , SELECT_BY_POS,MODE_HISTORY)==true)

parce que vous appelez OrderMagicNumber() avant OrderSelect(), donc il fait probablement référence à l'appel précédent.

 
EBK:
Oh, désolé j'ai mal exprimé mon opinion.

Je veux coder (mais je ne suis pas capable de le faire) quelque chose qui arrêtera le trading de l'EA (ou une partie du trading de l'EA) si l'équité est sous une valeur.

Merci pour votre aide Roger09, mais je n'ai pas besoin d'afficher l'équité du compte sur le graphique.

Essayez cet EA

CloseAllBuySell - Base de code MQL4

Utilisez son idée et créez un code avec quelque chose comme

if (AccountEquity()<YourValue) closeallorders() ;

 

Quelqu'un pourrait-il ajouter le stop suiveur EMA à l'exemple d'EA de moyenne mobile?

EMA trailing réglé sur 1

Puis changez l'entrée en

Buy=Open[1]>ma && Close[1]>ma ;

Sell=Open[1]<ma && Close[1]<ma ;

Cela devrait faire un très bon scalper simple.

Merci

Beno

Dossiers :
 
 

Ajoutez au début du programme

extern int pips=2;//(ou votre nombre de pips)

puis remplacer

if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() ;

if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() ;[/CODE]

to

[CODE]if ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point;

if ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point;
 

Quelqu'un peut-il m'aider à mettre une alerte dans cet indicateur lorsqu'il dessine une nouvelle flèche ?

Merci !

Dossiers :
hilow3.mq4  2 kb
 

Non, corrigez-le

extern int pips=2 ;

//+------------------------------------------------------------------+

//| fonction de démarrage du programme de script |

//+------------------------------------------------------------------+

int start()

{

//----

string curr = Symbole() ;

int ot = OrdersTotal() ;

int ords[200], ordType[200], ordTicket[200] ; double ordLots[200] ;

string ordComments[200] ;

int ix=0 ;

for (int i=0 ; i<ot ; i++)

{

int o = OrderSelect(i, SELECT_BY_POS) ;

if (OrderSymbol() == Symbol())

si ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))

{

double sl = 0 ;

si ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point ;

si ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point ;

si (sl != 0+10)

OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) ;

}

}

//----

retour(0) ;

 

OK, le code ressemble maintenant à ceci :

extern int pips=10;//

//+------------------------------------------------------------------+

//| fonction de démarrage du programme de script |

//+------------------------------------------------------------------+

int start()

{

//----

string curr = Symbole() ;

int ot = OrdersTotal() ;

int ords[200], ordType[200], ordTicket[200] ; double ordLots[200] ;

string ordComments[200] ;

int ix=0 ;

for (int i=0 ; i<ot ; i++)

{

int o = OrderSelect(i, SELECT_BY_POS) ;

if (OrderSymbol() == Symbol())

si ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))

{

double sl = 0 ;

si ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point ;

si ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point ;

si (sl != 0)

OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) ;

}

}

//----

retour(0) ;

}

//+------------------------------------------------------------------+

 

Bonjour Roger09,

Merci beaucoup pour votre aide avec ce code. Mon code script ressemble maintenant à ceci (j'ai ajouté les changements en rouge juste pour cette réponse, le code dans MQ4 ressemble au reste qui était là) :

//+------------------------------------------------------------------+

//| fonction de démarrage du programme de script |

//+------------------------------------------------------------------+

int start()

{

//----

extern int pips=2;//

string curr = Symbol() ;

int ot = OrdersTotal() ;

int ords[200], ordType[200], ordTicket[200] ; double ordLots[200] ;

string ordComments[200] ;

int ix=0 ;

for (int i=0 ; i<ot ; i++)

{

int o = OrderSelect(i, SELECT_BY_POS) ;

if (OrderSymbol() == Symbol())

si ((OrderType() == OP_BUY) || (OrderType() == OP_SELL))

{

double sl = 0 ;

si ((OrderType() == OP_BUY) && (OrderStopLoss() < OrderOpenPrice()))

sl = OrderOpenPrice() +pips*Point ;

si ((OrderType() == OP_SELL) && (OrderStopLoss() > OrderOpenPrice()))

sl = OrderOpenPrice() -pips*Point ;

si (sl != 0)

OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0) ;

}

}

//----

retour(0) ;

Pouvez-vous me dire si j'ai bien compris ? Je suis à l'aveugle, alors soyez indulgent.

 

En fait, cela va fonctionner, mais ce code n'est pas bon. Malheureusement, je ne connais pas vos objectifs principaux et je ne peux pas vous recommander autre chose.

Raison: