[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 414

 
OlegArH:

Guten Tag, liebe Leute!

Ich spiele mit meinem ersten Roboter herum. Meine Idee ist es, einen schwebenden Auftrag mit einer bestimmten Ablaufzeit zu eröffnen.

Ich habe nicht genug Wissen, um es umzusetzen.

Wenn es Ihnen nichts ausmacht, könnten Sie bitte das Beispiel des EA beschreiben, der, wenn ich ihn kompiliere, nur einen nach dem anderen öffnet, z.B. BuyStop für 100 min bei 50 Punkten vom aktuellen Preis SL=50, TP=100 für eur/usd in jedem Zeitrahmen.

Vielen Dank im Voraus!

anderes Beispiel
Dateien:
temp_3.mq4  4 kb
 
Es funktioniert nicht, es hängt nur da.
 
emotraid:
Es funktioniert nicht, bleibt einfach hängen.

)

optimieren.

;)

 
costy_:

Ich dachte, das sei ziemlich klar.


Ich danke Ihnen!
 
costy_:
anderes Beispiel
Ich danke Ihnen vielmals!!!
 

Erläutern Sie bitte den Operator return(-1);, der im Körper der Funktion start() aufgerufen wird - was bewirkt er?

Ist return(0); das Gleiche oder nicht? Das Ergebnis scheint nirgendwo weitergegeben zu werden.

Warum schreiben sie es in diesem Fall so?

int start()
  {
  if(a == b)return(-1);
  
  return(0);
  }
 
fore-x:

Erläutern Sie bitte den Operator return(-1);, der im Körper der Funktion start() aufgerufen wird - was bewirkt er?

Ist return(0); das Gleiche oder nicht? Das Ergebnis scheint nirgendwo weitergegeben zu werden.

Warum schreiben sie es so?

Schreiben void start()

und Rückgabe ist unnötig ))

Ich weiß nicht, warum!

 
costy_:
Ich habe das Gefühl, dass Sie es nicht allein herausfinden werden.

Wie schaffe ich es, dass alle Bedingungen in der Reihenfolge geprüft werden: erst Bedingung_1, dann Bedingung_2 und erst dann Bedingung_3 und nicht so (welche Bedingung fiel zusammen, die nicht in der Reihenfolge erfüllt wurde)? Wenn alle Bedingungen erfüllt sind, eröffnen Sie einen Marktauftrag zum Verkauf. Wird sie korrekt sein?

bool Val_max=true;
bool Cl_dn=true;
bool Val_min=true;
void start()
  {
      if(Val_max==true)
         if(условие_1)
         {
           Alert("Значение инд. >= 1.0000 (исп. 1-е усл.)");
           Val_max=false;                                       //заглушка
         }
      if(Cl_dn==true && Val_max==false)
         if(условие_2)
         {
           Alert("1 бар закрылся падением (исп. 2-е усл.)");
           Cl_dn=false;                                         //заглушка
         }
      if(Val_min==true && Val_max==false && Cl_dn==false)
         if(условие_3)
         {
           Alert("Значение инд. <= 0.9980 (исп. 3-е усл.)");
           Val_min=false;                                       //заглушка
         }
      if(Val_max!=true && Cl_dn!=true && Val_min!=true)
         {
           Val_max=true;
           Cl_dn=true;
           Val_min=true;      
         }   
//----
   return(0);
  }
 
fore-x:

Erläutern Sie bitte den Operator return(-1);, der im Körper der Funktion start() aufgerufen wird - was bewirkt er?

Ist return(0); das Gleiche oder nicht? Das Ergebnis scheint nirgendwo weitergegeben zu werden.

Warum schreiben sie es so?

Eine Prozedur ist eine Funktion, deren Rückgabewert nicht verwendet wird.

return wird oft aus Spaß eingegeben und kann getrost weggeworfen werden.

Im obigen Beispiel kann der Rückgabewert verwendet werden : Alert(init());

 
kolyango:

Wie erreiche ich, dass alle Bedingungen in der Reihenfolge geprüft werden: zuerst Bedingung_1, dann Bedingung_2 und erst dann Bedingung_3, und nicht so (welche Bedingung fiel zusammen, die nicht in der Reihenfolge erfüllt wurde)? Wenn alle Bedingungen erfüllt sind, eröffnen Sie einen Marktauftrag zum Verkauf. Ist das richtig?

Ja.