Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 509

 
Aleksey Stukalov:
Was ist falsch an einem Trailing-Stop? Sie ist bereits in das Terminal integriert.
Probieren Sie es aus und Sie werden verstehen
 

Nette Leute helfen bitte beim Kompilieren von EA, ich bin nicht gut im Programmieren.

Diese Fehlermeldung erhalte ich beim Kompilieren von 'delete' - Name erwartet

Der Fehler im Code ist rot hervorgehoben

void delete(int type){

if(AufträgeSumme()>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()==magic && 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());

}

}

}


Hier ist ein weiterer Fehler '(' - Objektzeiger erwartet

if(oppositedelete){löschen(OP_SELLSTOP);löschen(OP_SELLLIMIT);}

Und hier '}' - nicht alle Kontrollpfade geben einen Wert zurück

int countglobal(){

int cnt=0;

if(AufträgeSumme()>0){

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

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

cnt++;

}

zurück(cnt);

}

}

 
Anton Razmyslov:

Nette Leute helfen bitte beim Kompilieren von EA, ich bin nicht gut im Programmieren.

Diese Fehlermeldung erhalte ich beim Kompilieren von 'delete' - Name erwartet

Der Fehler im Code ist rot hervorgehoben

void delete(int type){.

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

Sie sagt, dass die Funktion so nicht aufgerufen werden kann. Sie sollten die Funktion mit einem anderen Namen aufrufen.

und dieses "nicht alle Kontrollpfade geben einen Wert zurück" über die Funktion, die keinen Rückgabeweg hat und keinen Wert zurückgibt, schreiben Sie return(0); vor das letzte "}" der Funktion

 
Спасибо большое!
 
Tema97:
Guten Tag an alle) Teilen Sie den Code für einen mobilen Stop-Loss - um den Preis zu fahren )))) Vielen Dank im Voraus
//---------------------------------
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);
           }
        }
     }

  }
//-----------------------------------------------
 
Hallo zusammen! MT4 heruntergeladen, Strategietester funktioniert erst seit Dezember 2015, wer weiß, wie man das Terminal pimpen kann?
 
olleg.1:
Hallo zusammen! Habe MT4 heruntergeladen, der Strategietester funktioniert erst seit Dezember 2015, wer weiß, wie man das Terminal patchen kann?
Laden Sie die Kostenvoranschläge für das gewünschte Instrument herunter. Service - Angebotsarchiv.
 
Ich danke Ihnen!
 

Hallo zusammen!

Könnten Sie mir bitte sagen, wie ich in EA die Möglichkeit implementieren kann, zu prüfen, ob die Eingangsvariable im Bereich liegt oder nicht, und zwar auf einfachere und korrektere Weise. Zum Beispiel:

a) Mehr als 10, aber weniger als 20

b) Mehr als 20 oder weniger als 10

c) usw.

ZS: Bisher haben wir 3 Werte, um jede Variable zu prüfen: Fall für Schalter (größer/kleiner/mehr als, aber kleiner/kleiner als oder größer als) und 2 Werte. Ich denke, man könnte diese Konstruktion in einer Schleife durchlaufen und alle Variablen durchgehen... Ist das die richtige Richtung?

 
Антон:

Hallo zusammen!

Könnten Sie mir bitte sagen, wie ich in EA die Möglichkeit implementieren kann, zu prüfen, ob die Eingangsvariable im Bereich liegt oder nicht. Zum Beispiel:

a) Mehr als 10, aber weniger als 20

b) Mehr als 20 oder weniger als 10

c) usw.

ZS: Bisher haben wir 3 Werte, um jede Variable zu prüfen: Fall für Schalter (größer/kleiner/mehr als, aber kleiner/kleiner als oder größer als) und 2 Werte. Ich denke, man könnte diese Konstruktion in einer Schleife durchlaufen und alle Variablen durch gehen... Ist das die richtige Richtung?

Welche Variablen sollen in eine Schleife aufgenommen werden? Geben Sie mir den Code oder schreiben Sie ihn deutlicher