Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Würde es die Sache einfacher machen, wenn ich sage, dass es so ist?)
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.
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!
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.
Es hat mir gefallen:)
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.