Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 503

 
Vitaly Muzichenko:

Es funktioniert hervorragend!

Von zwei Positionen wählte ich die letzte, nämlich die auf dem 11:


Validierungscode

Ich beschloss, die Bedingung zu ändern, um die Position zu geben, setzen Sie einfach Limit zu Low[2] gearbeitet, aber wenn die Bedingung als in meinem ersten Aufruf heute, es funktioniert nicht, so ist es in der Bedingung selbst, bevor die Funktion aufgerufen wird

 
Вадим Мотеюнас:

Ich beschloss, die Bedingung für die Eingabe einer Position zu ändern , setzen Sie einfach das Limit auf Low[2] es funktionierte, aber wenn die Bedingung wie in meinem ersten Aufruf heute, es funktioniert nicht, so dass das Problem in der Bedingung selbst, bevor die Funktion aufgerufen wird

Sie sind derjenige, der einen Auftrag erteilt, und nicht derjenige, der eine Position eröffnet (Kauf, Verkauf).

Ok, das ist also eine gute Sache.

 
Vitaly Muzichenko:

Sie haben den Auftrag erteilt, nicht den Einstieg in die Position (Kauf, Verkauf).

Ok, wir haben es herausgefunden - also ist es gut.

Ich meinte, dass es zuerst eine Bedingung für die Eingabe gab, wenn(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]

dann rief ich diese Funktion auf, um den Barindex zurückzugeben, aber jetzt habe ich sie einfach entfernt und Low[2] in OrderSend eingegeben, und es funktioniert

Immerhin habe ich nicht einen Tag darauf verschwendet, es ist ein bisschen eine Verschiebung vom toten Punkt

 
Ich habe das Problem überwunden und danke Ihnen allen für Ihr Feedback.
 
if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(takelimit,GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

vielleicht 1 und 1 ?/d.h. wahr und Fehlercode 1

ERR_NO_RESULT1Kein Fehler, aber das Ergebnis ist unbekannt
bool takelimit;

if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

Ihr gesamter Code ist falsch.

bool takelimit;

if(takelimit?=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1) // <<< что это, почему сравнивать с единицей? OrderOpenTime() может вернуть "1"???
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Com
 
Vitaly Muzichenko:

Ihr gesamter Code ist falsch.

Es vergleicht die Balkenanzahl mit der dortigen Zeit...

int ticket;

void Fn()
  {
   ResetLastError();
   if(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}
   else
     {
      if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}
     }
  }
 
Nikolay Gaylis:

Er vergleicht die Nummer der Bar mit der Uhrzeit...

Ja, ich habe die Klammer nicht bemerkt.

 
Nikolay Gaylis:

er prüft dort die Taktnummer nach Zeit...

Nikolay Gaylis:

vielleicht 1 und 1 ?/d.h. wahr und Fehlercode 1

ERR_NO_RESULT1Es liegt kein Fehler vor, aber das Ergebnis ist unbekannt

Print(takelimit,GetLastError()) gibt zwei Werte zurück, weil die erste Variable vom Typ bool ist und GetLastError nicht benötigt wird, und weil sie ein Komma hat, gibt GetLastError den letzten Fehler im Code zum Zeitpunkt des Aufrufs von GetLastError?

Grund der Beschwerde: