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

 
tara:
Würde es die Sache einfacher machen, wenn ich sage, dass es so ist?)
Ich weiß nicht, ob es leichter wird oder nicht, aber sie haben mich von meinem ersten Jahr an genommen, so war die Zeit, sonst hätte ich nie gedient!
 
Ant_TL:

Ja, genau da:

int li_LastTicket = OrderTicket();

Ihr Code erzeugt einen 4105-Ausführungsfehler, wenn es keinen OrderSelect-Aufruf gab, bevor er ausgeführt wurde. Setzen Sie einfach eine GetLastError-Prüfung an das Ende jedes Ticks und Sie werden diesen Fehler finden.

In meinem Code wird dieser Fehler nicht auftreten, da diese Funktion NACH OrderSelect() aufgerufen wird. Diese Prüfung stammt noch aus der Zeit, als Codes ohne eine gemeinsame Struktur aller ausführbaren EA-Funktionen geschrieben wurden.

Außerdem enthalten die meisten meiner Funktionen Funktionen zur Fehlerbehandlung, und ich bin sehr darauf bedacht, diese zu vermeiden. Und es gibt auch eine Reihe von Funktionen, die einen Fehler erzeugen, wie die von Ihnen gesuchte Antwort:"Bestellung früherausgewählt oder nicht?"

P.S. Übrigens, ich erinnerte mich an eine Besonderheit (kann für jemanden nützlich sein) der Arbeit mit OrderSelect() Funktionen aus kompilierten Bibliotheken: wir haben eine Bestellung ausgewählt (wie - nicht prinzipiell), OrderTicket() - gibt die Nummer der ausgewählten Bestellung zurück. Wenn wir jedoch die Eigenschaften dieser ausgewählten Bestellung von der Funktion in der kompilierten Bibliothek abrufen wollen, erhalten wir nichts. Wir müssen diesen Auftrag (erneut) auswählen.

 
borilunad:
Ich weiß nicht, ob es einfacher ist oder nicht, aber sie haben mich von meinem ersten Jahr an genommen, so war die Zeit, sonst hätte ich nie gedient!
Es hat mir gefallen:)
 
Sind Ticket und Magie keine Identifikatoren mehr? Oder ist es prinzipiell richtig, mit zwei oder drei Aufträgen gleichzeitig zu arbeiten? Es gibt Arrays, es gibt Funktionen, die diese Arrays verarbeiten und aktualisieren. Oder ist es prinzipiell richtig, sich nicht in den Fehler verwickeln zu lassen? Machen Sie also keine Fehler. Aber beklagen Sie sich nicht darüber, dass eine zu große Auswahl an Aufträgen die Prüfung verlangsamt. Alles hat seine Zeit und seinen Platz. Wenn Sie von einer Funktion zu einer anderen wechseln, sollten Sie sich von vornherein darüber im Klaren sein, dass Sie den Auftrag noch einmal auswählen und die Verarbeitungsdaten der vorherigen Funktion in einem Array speichern müssen.
 
TarasBY: Wenn wir die Eigenschaften dieser ausgewählten Bestellung von einer Funktion in der kompilierten Bibliothek abrufen wollen, wird sie NICHTS tun. Wir müssen diesen Auftrag erneut (von vorne) auswählen.
Das liegt daran, dass MQL4 kein Compiler, sondern ein Interpreter ist. Die Bibliotheksfunktionen werden nach und nach hinzugefügt:)
 
grell:
Sind Ticket und Magie keine Identifikatoren mehr? Oder ist es prinzipiell richtig, mit zwei oder drei Aufträgen gleichzeitig zu arbeiten? Es gibt Arrays, es gibt Funktionen, die diese Arrays verarbeiten und aktualisieren. Oder ist es prinzipiell richtig, sich nicht in den Fehler verwickeln zu lassen? Machen Sie also keine Fehler. Aber beklagen Sie sich nicht darüber, dass eine zu große Auswahl an Aufträgen die Prüfung verlangsamt. Alles hat seine Zeit und seinen Platz. Wenn Sie von einer Funktion zu einer anderen wechseln, sollten Sie sich von vornherein darüber im Klaren sein, dass Sie den Auftrag noch einmal auswählen müssen, während Sie die Verarbeitungsdaten der vorherigen Funktion in einem Array speichern.
Dmitry, auch wenn man die Grenzen einer Funktion nicht verlässt, kann man nicht sicher sein, dass sich das Vorzeichen der Bestellungsauswahl nicht ändert.
 
tara:
Es hat mir gefallen:)
Wahrscheinlich wie "Käse in Butter...? Die Armee sollte professionell sein, denn sie erfordert eine spezielle Ausbildung, und wir wurden mit mehr Politik gefüttert! Die Armee sollte dem Vaterland, dem Volk, dienen, nicht der Regierungspartei!
 
Nein, nicht wie Käse in Butter, aber ich habe als Oberstleutnant meinen Teil dazu beigetragen. Tut mir leid, wenn ich Sie beleidigt habe :(
 
tara:
Dimitri, auch wenn Sie die Grenzen einer Funktion nicht verlassen, können Sie nicht sicher sein, dass sich das Auswahlzeichen für die Reihenfolge nicht ändert.


Das ist es, was ich meine. Meine Funktionen haben keine Allgemeingültigkeit, jede ist strikt mit ihrer eigenen Aufgabe beschäftigt. Sogar Kauf und Verkauf sind getrennt. Slosewall verlässt die Funktion erst, wenn der gesamte Auftrag ausgeführt ist. Die Bestellnummern können sich ändern, die Haltestellen können sich verschieben, aber das Ticket und der Magier bleiben.
 
Ich hoffe nicht einmal, dass alle Auftragsdaten gespeichert werden , wenn die Funktion aufgerufen wird. Daher gibt es keine Hoffnung für diese Funktion.