Fehler, Irrtümer, Fragen - Seite 1432

 
Alexey Kozitsyn:

Die Funktion OrderGetTicket() gibt das Ticket der Bestellung zurück, deren Index ihr übergeben wird.

Für die zweite Frage gibt OrderGetTicket() sowohl das Ticket zurück als auch wählt die Bestellung aus, mit der es arbeiten soll.

Danke, Captain O. Und wie ist die Reihenfolge der Indizes in der Liste aller Aufträge definiert?

OrderGetTicket gibt das Auftragsticket mit der übergebenen Nummer in der Liste zurück, nicht die Nummer des aktuell ausgewählten Auftrags, nach dem ich gefragt habe.

 
Ilya Malev:

Danke, Captain O. Und wie wird die Reihenfolge der Indizes in der Liste aller Aufträge bestimmt?

OrderGetTicket gibt das Auftragsticket mit der übergebenen Nummer in der Liste zurück, nicht die Nummer des aktuell ausgewählten Auftrags, nach dem ich gefragt habe.

Soweit ich mich erinnere, ist der älteste (erste) = 0 usw. Probieren Sie es aus, es ist ein 5-Minuten-Job.

Dies ist die Reihenfolge, die Sie ausgewählt haben. Wie wurde sie ausgewählt? Nach Nummer oder nach Ticket?

Kurz gesagt, es gibt zwei Möglichkeiten: per Nummer und per Ticket. In meiner Praxis gab es bisher keine Situationen, in denen dies nicht ausreichend gewesen wäre.

 
Alexey Kozitsyn:

Überprüfen Sie es, es dauert nur fünf Minuten.

Natürlich kann ich das selbst überprüfen. Ich würde hier nicht schreiben, wenn es das Problem lösen würde. Sie brauchen eine Bestätigung von den Entwicklern, denn das Ergebnis der Prüfung kann situativ sein oder sich in Zukunft willkürlich ändern.

>>Ihre Bestellung wurde ausgewählt. Wie wurde sie ausgewählt? Nach Nummer oder nach Ticket?

Es ist eine zusätzliche Frage in MT4, es war mir egal, wie es ausgewählt wurde, aber ich musste sein Ticket kennen, um etwas mit ihm außerhalb der Funktion zu tun, die es ausgewählt hat. In MT5 sieht es so aus, als ob dies, wie viele andere Dinge auch, programmatisch gelöst werden muss.

Alexey Kozitsyn:

Bislang gab es in meiner Praxis keine Situation, in der das nicht ausreichte.

In meiner Praxis gibt es viele solcher Situationen. Das passiert immer dann, wenn Sie beim Aufruf von Funktionen, die mit Aufträgen zu tun haben, Codegröße in Form von übergebenen Parametern sparen wollen.
 

Und nicht nur das: Stellen Sie sich eine Situation vor, in der Sie mit einem Auftrag arbeiten, den Sie gerade ausgewählt haben, aber eine Funktion aufrufen müssen, um Informationen aus anderen Aufträgen zu erhalten.

Nach dem Aufruf dieser Funktion müssen Sie den Auftrag erneut auswählen, da diese Funktion die aktuelle Auswahl ändert, indem sie einige Informationen aus anderen Aufträgen erhält.

Es wäre logisch, bei all diesen Funktionen die aktuelle Auswahl der Reihenfolge zu speichern, bevor sie ausgeführt werden, und sie vor der Rückkehr erneut auszuwählen, so dass sich die aktuelle Auswahl der Reihenfolge nicht ändert, wenn solche Funktionen aufgerufen werden, was dazu beitragen kann, einige schwer zu findende logische Fehler im Code zu vermeiden. Aber in MT5 ist dies einfach nicht möglich, da es kein Analogon der OrderTicket-Funktion gibt und wir einen Programm-Wrapper in Form einer speziellen Klasse für die Orderauswahl und das Abrufen des Tickets erfinden müssen.

 
Ilya Malev:

Und nicht nur das: Stellen Sie sich eine Situation vor, in der Sie mit einem Auftrag arbeiten, den Sie gerade ausgewählt haben, aber eine Funktion aufrufen müssen, um Informationen aus anderen Aufträgen zu erhalten.

Nach dem Aufruf dieser Funktion müssen Sie den Auftrag erneut auswählen, da diese Funktion die aktuelle Auswahl ändert, indem sie einige Informationen aus anderen Aufträgen erhält.

Es wäre logisch, bei all diesen Funktionen die aktuelle Auswahl der Reihenfolge zu speichern, bevor sie ausgeführt werden, und sie vor der Rückkehr erneut auszuwählen, so dass sich die aktuelle Auswahl der Reihenfolge nicht ändert, wenn solche Funktionen aufgerufen werden, was dazu beitragen kann, einige schwer zu findende logische Fehler im Code zu vermeiden. Aber in MT5 ist dies einfach nicht möglich, da es kein Analogon der OrderTicket-Funktion gibt und wir einen Programm-Wrapper in Form einer speziellen Klasse für die Orderauswahl und das Abrufen des Tickets erfinden müssen.

Ich sehe da kein Problem. Wir haben den Auftrag ausgewählt. Wir haben uns seine Eintrittskarte gemerkt. Wir brauchen einen anderen Auftrag - wir haben einen anderen Auftrag gefunden. Wir verarbeiten sie. Wenn wir zur vorherigen Bestellung zurückkehren wollen, verwenden wir OrderSelect(). Das ist alles.
 
Alexey Kozitsyn:
Ich sehe das Problem nicht. Ich habe eine Bestellung aufgegeben. Er erinnerte sich an sein Ticket. Brauche eine weitere Bestellung - habe eine weitere Bestellung gefunden. Wir verarbeiten sie. Wenn wir zur vorherigen Bestellung zurückkehren wollen, verwenden wir OrderSelect(). Das ist alles.
Wenn es sich um ein Problem handelt, das nicht umgangen und auf andere Weise gelöst werden kann, dann gibt es kein Problem. Aber es gibt auch kein Analogon zur OrderTicket-Funktion aus MQL4, das nützlich wäre.
 
Ilya Malev:
Wenn es sich um ein Problem handelt, das nicht umgangen und auf andere Weise gelöst werden kann, dann gibt es kein Problem. Aber es gibt auch kein Analogon der nützlichen OrderTicket-Funktion aus MQL4.
Wenn Sie es wirklich brauchen, wissen Sie, wo Sie fragen können. Allerdings ist es unwahrscheinlich, dass Sie dort glücklich werden.
 
MT4, Build 910. Keine Abwärtskompatibilität mit dem vorherigen Build. Ich gebe eine kompilierte Indikatordatei an eine Person im 910. Build weiter, und er kann sie im 902. Build nicht starten, weil ein Fehler auftritt:

eine neuere, nicht unterstützte Version hat, aktualisieren Sie bitte Ihr Client-Terminal


Wird das jetzt auch so sein?

 
Artyom Trishkin:
MT4, Build 910. Keine Abwärtskompatibilität mit dem vorherigen Build. Ich gebe eine kompilierte Indikatordatei an eine Person im 910. Build weiter, und er kann sie im 902. Build nicht starten, weil ein Fehler auftritt:

eine neuere, nicht unterstützte Version hat, aktualisieren Sie bitte Ihr Client-Terminal


Wird das jetzt auch so sein?

So war es auch bei MT5, als die Ticks eingeführt wurden.
 
Artyom Trishkin:
MT4, Build 910. Keine Abwärtskompatibilität mit dem vorherigen Build. Ich gebe eine kompilierte Indikatordatei an eine Person im 910. Build weiter, und er kann sie im 902. Build nicht starten, da ein Fehler auftritt:

eine neuere, nicht unterstützte Version hat, aktualisieren Sie bitte Ihr Client-Terminal


Wird das jetzt auch so sein?

Ja, so sollte es eigentlich funktionieren. Es gab Änderungen im Compiler im Build 910, bzw. ex4, das vom aktualisierten Compiler erzeugt wurde, kann nicht in früheren Versionen des Terminals ausgeführt werden.