[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 52

 

Hier ist meine Funktion zum Ändern ausstehender Aufträge. Beim Ändern setze ich einen neuen Preis und einen neuen Stoploss. Die Funktion funktioniert teilweise, aber aus irgendeinem Grund erhält der Prüfer Fehler 1.

Ist meine Funktion richtig geschrieben?

void MovingPendingOrders(/*int ticket, double newPrice*/)
{
  double priceS = NormalizeDouble((Low[1] - i_thresholdFromInput*pt),Digits);           // Новая цена открытия для OP_SELLSTOP
  double priceB = NormalizeDouble((High[1] + i_thresholdFromBasedSL*pt),Digits);        // Новая цена открытия для OP_BUYSTOP
  bool b_mod, s_mod;
  
  int total = OrdersTotal() - 1;
  int s_ticket, b_ticket;

  for(int i=total; i>=0; i--)
  {
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if(OrderMagicNumber() != i_myMagic) continue;
      {
        if(OrderType() == OP_BUYSTOP)
        {
          b_ticket = OrderTicket();
          b_mod = true;
        }
        if(OrderType() == OP_SELLSTOP)
        {
          s_ticket = OrderTicket();
          s_mod = true;
        }
      }
  }
  
  if(IsTradeAllowed())
  {
    if((b_mod) && (priceB > Ask)) OrderModify(b_ticket,priceB,priceS,0,0,Brown);
    if((s_mod) && (priceS < Bid)) OrderModify(s_ticket,priceS,priceB,0,0,Brown);
  }
  Print("MovingPendingOrders переоткрыл ордер по новой цене");
}
 
hoz:

Ist meine Funktion richtig geschrieben?

 bool b_mod = false; 
 bool s_mod = false;
 
hoz:

Hier ist meine Funktion zum Ändern ausstehender Aufträge. Beim Ändern setze ich einen neuen Preis und einen neuen Stoploss. Die Funktion funktioniert teilweise, aber aus irgendeinem Grund erhält der Prüfer Fehler 1.

Ist meine Funktion richtig geschrieben?

...und bei jedem Häkchen ändern Sie immer wieder. ?!
 
BeerGod:

Bitte geben Sie mir einen Rat, wie ich einen EA dazu bringen kann, einen Kommentar über einem Rahmen auszugeben, der das Diagramm abdeckt, damit es leichter zu lesen ist.

Ich weiß nicht, wie ich es jetzt machen soll:

Das sollte so sein:

Wir sollten eine Art von Schriftart verwenden. Vielleicht schaffen Sie sogar Ihre eigene.
 
silatyt:
...und bei jedem Häkchen ändern Sie immer wieder. ?!

Ich wusste nicht, wohin damit, ich habe die Logik des Expert Advisors aus Unerfahrenheit durcheinander gebracht. Um die Funktion zu überprüfen, habe ich es in den Start... Ja, das war bei jedem Ticken so, deshalb der Fehler. Dann, nachdem die Funktion einen neuen Balken definiert hatte, fügte ich ihn ein und korrigierte den Code, wieTheXpert mir sagte, und alles lief wie es sollte.
 

Guten Tag. Könnten Sie mir bitte sagen, wie ein Teil des EA-Codes aussehen sollte, der für Folgendes verantwortlich ist?

1. Geht die Parameter des Indikators, auf dem der EA basiert, einen nach dem anderen durch (in einem bestimmten Bereich, z. B. von 10 bis 20), bis die Bedingung zur Eröffnung des Handels nicht erfüllt ist.

2. Wenn die Bedingung nach der Suche nicht erfüllt ist - 5 Minuten warten.

 
Guten Tag. Können Sie mir sagen, ob es möglich ist, die Standard-Mql4-Tools zu verwenden, um die Codeausführung von Zeile 35 bis Zeile 18 (Zeilen zum Beispiel) zu senden. Eine Art Sprung im Code.
 
tpg_k156:
Guten Tag. Wissen Sie, ob es möglich ist, die Code-Ausführung von Zeile 35 bis Zeile 18 mit den Standard-Mql4-Tools (Zeilen zum Beispiel) zu senden. Eine Art Sprung im Code.

Operatoren Schalter / wenn - sonst

und Funktionen

 
sergeev:

switch / if - else Operatoren

und Funktionen



ist es also möglich, denselben Funktionskörper zu zwingen, sich selbst erneut auszuführen? z. B.
int Gipo()                   // Пользовательская функция  
{
всякая фигня
if(получили-что-надо)
 {
 return(что-надо);
 }
else
 {
 Gipo();
 }
}
???
 
tpg_k156:

ist es also möglich, denselben Funktionskörper zu zwingen, sich selbst erneut auszuführen? wie


Ja, das nennt man Rekursion.