Questions des débutants MQL5 MT5 MetaTrader 5 - page 509

 
Aleksey Stukalov:
Qu'y a-t-il de mal à utiliser un stop suiveur ? C'est déjà intégré dans le terminal.
Essayez-le et vous comprendrez
 

Merci de m'aider à compiler EA, je ne suis pas bon en programmation.

Voici l'erreur que j'obtiens en compilant 'delete' - nom attendu

L'erreur dans le code est mise en évidence en rouge

void delete(int type){

si(OrdersTotal()>0){

for(i=OrdersTotal()-1;i>=0;i--){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;

if(type!=6 && type!=7 && type!=8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magique && OrderType()==type)OrderDelete(OrderTicket() ;

if(type==6)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket()) ;

if(type==7)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)OrderDelete(OrderTicket()) ;

if(type==8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket()) ;

}

}

}


Voici une autre erreur '(' - pointeur d'objet attendu

if(oppositedelete){delete(OP_SELLSTOP);delete(OP_SELLLIMIT);}

Et ici "} - tous les chemins de contrôle ne renvoient pas une valeur

int countglobal(){

int cnt=0 ;

si(OrdersTotal()>0){

for(i=OrdersTotal()-1;i>=0;i--){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES) ;

cnt++ ;

}

retour(cnt) ;

}

}

 
Anton Razmyslov:

Merci de m'aider à compiler EA, je ne suis pas bon en programmation.

Voici l'erreur que j'obtiens en compilant 'delete' - nom attendu

L'erreur dans le code est mise en évidence en rouge

void delete(int type){.

..............

Il est dit qu'elle ne peut pas être appelée de cette façon. Vous devez appeler la fonction par un autre nom.

et ce "tous les chemins de contrôle ne renvoient pas une valeur" à propos de la fonction n'ayant pas de chemin de retour et ne renvoyant aucune valeur, écrivez return(0) ; avant le dernier "}" de la fonction

 
Спасибо большое!
 
Tema97:
Bonjour à tous) Partagez le code pour un stop loss mobile - pour conduire le prix )))) Merci d'avance
//---------------------------------
void Trailing3(int Mag,string Symb,int Dist,int Shag,bool Isp_shag,bool Isp_bezubitok)
  {
   double dist=0,shag;
   if(Digits==3 || Digits==5)
      dist=Dist*10*Point; shag=Shag*10*Point;
   if(Digits==2 || Digits==4)
      dist=Dist*Point; shag=Shag*Point;

   for(int pos=OrdersTotal()-1; pos>=0; pos--)
     {
      int res=OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==Mag && OrderSymbol()==Symb)
        {
         if(OrderType()==OP_BUY)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
           }
         else  if(OrderType()==OP_SELL)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
           }
        }
     }

  }
//-----------------------------------------------
 
Bonjour à tous ! Téléchargé MT4, le testeur de stratégie ne fonctionne que depuis décembre 2015, qui sait comment pimper le terminal ?
 
olleg.1:
Bonjour à tous ! Téléchargé MT4, le testeur de stratégie ne fonctionne que depuis décembre 2015, qui sait comment patcher le terminal ?
Téléchargez des devis pour l'instrument requis. Service - Archives des citations.
 
Merci !
 

Bonjour, tout le monde !

Pourriez-vous me dire comment implémenter dans EA la possibilité de vérifier si la variable d'entrée est dans la plage ou non. Par exemple :

a) Plus de 10, mais moins de 20

b) Plus de 20 ou moins de 10

c) etc.

ZS : jusqu'à présent, nous avons 3 valeurs pour vérifier chaque variable : cas pour le switch (plus grand que / moins grand que / plus grand que, mais moins grand que / moins grand que ou plus grand que) et 2 valeurs. Je suppose que vous pourriez boucler cette construction et passer par toutes les variables... Est-ce la bonne direction ?

 
Антон:

Bonjour, tout le monde !

Pourriez-vous me dire comment implémenter dans EA la possibilité de vérifier si la variable d'entrée est dans la plage ou non, d'une manière plus simple et plus correcte. Par exemple :

a) Plus de 10, mais moins de 20

b) Plus de 20 ou moins de 10

c) etc.

ZS : jusqu'à présent, nous avons 3 valeurs pour vérifier chaque variable : cas pour le switch (plus grand que / moins grand que / plus grand que, mais moins grand que / moins grand que ou plus grand que) et 2 valeurs. Je suppose que vous pourriez boucler cette construction et passer par toutes les variables... Est-ce la bonne direction ?

Quelles sont les variables à boucler ? Donnez-moi le code ou écrivez-le plus clairement