So prüfen Sie, ob ein Auftrag ausgewählt ist - Seite 3

 
FAQ:

Bestellung nach Select und sonst nichts.

Der Auftragsselektor weiß überhaupt nicht, ob ein Auftrag gerade ausgewählt ist und welcher Auftrag gerade ausgewählt ist, wenn er ausgewählt ist, Sie liegen also völlig falsch.

 
Ant_TL:

Der Auftragsselektor weiß nicht, ob ein Auftrag gerade ausgewählt ist, Sie liegen also völlig falsch.

Sehen Sie sich einen beliebigen EA an! Sie sind der erste, der versucht, selbst zu wählen! Lernen! Warum schämen Sie sich so sehr für das ganze Forum?
 

Für diejenigen, die im Tank sind:

1) Sie haben vor langer Zeit in einer entfernten Funktion einen Auftrag ausgewählt und bearbeitet.

2) Sie möchten nach langer Zeit wieder darauf zugreifen und mehr über sein Schicksal erfahren.

3) Sie kontaktieren den Auftrag und das Terminal sagt: Es gibt keinen Auftrag (d.h. der Auftrag wurde noch nicht ausgewählt, Sie haben ihn aufgegeben und Sie haben erfolgreich seinen Namen (Ticket) vergessen). == Fehler

Was hindert Sie daran, den Auftrag in dem Moment auszuwählen, in dem Sie ihn bereits ausgewählt haben, seinen Namen (Ticket) in einer globalen Variablen zu speichern und ihn dann, anstatt ihn mit einem längst vergessenen Namen (Ticket) wieder aufzurufen, mit dem Wert dieser globalen Variablen auszuwählen.

Wenn sie den Namen des Auftrags enthält, erhalten Sie eine positive Antwort, dass Sie ihn nicht vergessen haben, und Sie können sein Schicksal erfahren oder irgendwelche Aktionen mit ihm durchführen.

Wenn Sie jedoch den Namen vergessen haben, erhalten Sie nur eine negative Antwort von der Auftragsauswahlfunktion und stellen fest, dass der Auftrag erneut in der Liste gesucht werden muss.

Uff... das ist eine Menge Text...

 
borilunad:
Sehen Sie sich einen beliebigen EA an! Sie sind der Erste, der sie nach eigenem Ermessen auswählen kann! Lernen! Warum schämen Sie sich vor dem gesamten Forum so sehr?

Nicht ich schäme mich, sondern diejenigen, die die grundlegenden Dinge, über die ich schreibe, nicht verstehen (und dennoch aggressiv versuchen, sie zu "belehren").

Was bedeutet "prüfen, ob ein Auftrag ausgewählt ist"?

Das bedeutet, dass es zu jedem Zeitpunkt der Ausführung eines Programms in mql4 eine solche interne Konstruktion gibt, wie den aktuell gewählten Auftrag. Mit OrderSelect können wir jede offene/abgeschlossene Bestellung nach Ticket oder Nummer in der Liste auswählen.

Mit OrderSelect können wir jedoch nicht überprüfen, ob ein Auftrag gerade ausgewählt ist und welche Nummer er hat, sondern wir können einen Auftrag nur anhand der Daten auswählen, die wir bereits kennen, wie z. B. sein Ticket oder seine Nummer in der Liste.

 
FAQ:

für diejenigen, die im Tank sind:

Für diejenigen, die im Tank sind, kann ich natürlich meine eigene Funktion OrderSelect schreiben, die zusätzlich zur Auswahl einer Bestellung ihr Ticket ins Global schreibt und dann dieses Ticket ermittelt, wenn ich wissen muss, ob die Bestellung ausgewählt ist, aber das nennt man Lösung eines einfachen Problems durch die ...

 
FAQ:

Für diejenigen, die im Tank sind:

1) Vor langer Zeit haben Sie in einer entfernten Funktion einen Auftrag ausgewählt und bearbeitet.

2) Sie möchten nach langer Zeit wieder darauf zugreifen und mehr über sein Schicksal erfahren.

3) Sie nehmen Kontakt mit der Bestellung auf und das Terminal sagt: Es gibt keine Bestellung (d.h. die Bestellung wurde noch nicht ausgewählt, Sie haben sie bereits aufgegeben und Sie haben erfolgreich ihren Namen (Ticket) vergessen). == Fehler

Wenn diese Meldung Sie tatsächlich daran hindert, den Auftrag auszuwählen, wird sein Name (Ticket) in einer globalen Variablen gespeichert, und dann wird statt auf ihn zurückzugreifen (Suche) ein längst vergessener Name (Ticket) verwendet,

Wenn er den Namen der Bestellung trägt, erhalten Sie eine positive Antwort, dass Sie ihn nicht vergessen haben, und Sie können sich über sein weiteres Schicksal informieren oder irgendwelche Aktionen mit ihm durchführen.

Wenn Sie aber den Namen vergessen haben, erhalten Sie nur eine negative Antwort von der Auftragsauswahlfunktion, und Sie müssen den Auftrag erneut in der Liste suchen.

Uff... so viel Text...

Er denkt wahrscheinlich, dass wir das Ticket anhand der Nummer suchen sollten, die uns der DC gibt und die wir auf der Karte sehen?
 
Ant_TL:

Der Fehler ist "beängstigend", weil es keinen Fehler geben sollte

Der Auftrag kann ausgeführt werden und einen Fehler zurückgeben, den Sie nicht vermeiden können.

 
Figar0:

Der Auftrag kann zwar ausgeführt werden, aber er kann einen Fehler zurückgeben, und diesen Fehler können Sie nicht vermeiden.

Das ist richtig. Aber ich bin nicht der Meinung, dass wir ohne solche Fehler nicht weiterkommen. Solche Fehler im Code zu lassen, ist einfach schlechter Code. Es handelt sich um eine Situation, in der Sie nicht auf die Erzeugung von Fehlern verzichten können - ein Defekt des Toolkits. Ausführungsfehler sind etwas ganz anderes, sie sind nicht wirklich Fehler des Expert Advisors, sondern ein Hinweis für den Expert Advisor auf weitere zu ergreifende Maßnahmen.

 

In der Tat gibt es eine Menge Demagogie.

bool OrderSelect( int index, int select, int pool=MODE_TRADES)
Die Funktion wählt einen Auftrag aus, um mit ihm zu arbeiten. Gibt TRUE zurück, wenn die Funktion erfolgreich abgeschlossen wurde. Gibt FALSE zurück, wenn die Funktion fehlschlägt. Rufen Sie GetLastError() auf, um Informationen über den Fehler zu erhalten.

Alles, was Sie wissen müssen, ist, ob ein Auftrag ausgewählt wurde oder nicht.

Ant_TL:

Wenn Sie das sagen, begründen Sie Ihren Standpunkt

void SomeFunс()

{

int tick=OrderTicket(); // Поразумевает ордер выбраный посредством OrderSelect  (ну или ошибку)

// ..... 

if(tick>0) OrderSelect(tick,SELECT_BY_TICKET);  // Так зачем его еще раз выбирать??? 
} 
 
borilunad:
Er denkt wahrscheinlich, dass wir das Ticket anhand der Nummer suchen sollten, die uns der DC gibt und die wir auf der Karte sehen?

Nein, er ist wirklich aufgetankt.