Auftrag auf Gültigkeit geprüft, aber noch nicht vom Makler angenommen
AUFTRAGSZUSTAND_ERTEILT
Auftrag_Status_erteilt
Sie senden eine Handelsanforderung (OrderSend) - ihre Korrektheit wird geprüft, und wenn sie in Ordnung ist, ist die Rückgabe wahr. D.h., es handelt sich um eine Antwort über die Korrektheit der Handelsanfrage. Der Server hat diese Anfrage noch nicht erhalten.
Wenn die Anfrage vom Server angenommen wurde, wird die Antwort zurückgesendet: ORDER_STATE_PLACED - Auftrag ist eingestellt.
Ich bin mir nicht sicher, aber es ist logisch, dass es so funktioniert. Ich kenne keine Fallstricke.
Artyom Trishkin: Nun, das ist bereits beschrieben:
Kennung
Beschreibung
AUFTRAG_ZUSTAND_GESTARTET
Auftrag auf Gültigkeit geprüft, aber noch nicht vom Makler angenommen
AUFTRAGSZUSTAND_ERTEILT
Auftrag_Status_erteilt
Senden der Handelsanforderung (OrderSend) - ihre Korrektheit wird geprüft, und wenn sie OK ist, wird true zurückgegeben. D.h. es ist eine Antwort, dass der Handelsantrag korrekt ist. Der Server hat diese Anfrage noch nicht erhalten.
Wenn die Anfrage vom Server angenommen wurde, wird die Antwort zurückgesendet: ORDER_STATE_PLACED - Auftrag ist eingestellt.
Ich bin mir nicht sicher, aber es ist logisch, dass es so funktioniert. Ich weiß nicht, was ich vermeiden soll.
Sie haben die Logik der Arbeit mit OrderSendAsync beschrieben, nicht mit OrderSend. Nach dem aktuellen OrderSend werden Sie den Auftrag löschen wollen, und es ist sehr wahrscheinlich, dass dies nicht möglich ist, da gestartete Aufträge nicht gelöscht werden.
Artyom Trishkin: Sie senden eine Handelsanfrage (OrderSend) - ihre Korrektheit wird geprüft und, wenn sie in Ordnung ist, wird true zurückgegeben. Das heißt, dies ist eine Antwort, dass der Handelsantrag korrekt ist. Der Server hat diese Anfrage noch nicht erhalten.
Wie unterscheidet sich dann OrderSend von OrderSendAsync (abgesehen vom Namen)?
Artyom Trishkin: Ich habe oben geschrieben - nur meine Vorstellung von Logik. Ich arbeite schon seit langem im Bereich 4. Daher werde ich diese Frage wohl kaum beantworten können ;)
MQL5: Geändertes Verhalten der Funktion OrderSend beim Platzieren, Ändern und Zurückziehen von Aufträgen. Das Verhalten wird nur geändert, wenn Aufträge an externe Handelssysteme erteilt werden. Bisher wurde die OrderSend-Funktionskontrolle nach der erfolgreichen Platzierung (Verarbeitung) einer Order auf dem Server des Brokers zurückgegeben. Jetzt wird die Kontrolle erst zurückgegeben, wenn der Server des Brokers eine Benachrichtigung vom externen Handelssystem erhält, dass der Auftrag dort erfolgreich platziert wurde.
Nachstehend finden Sie eine schematische Darstellung des früheren (roter Pfeil) und des aktuellen Verhaltens der Funktion:
Denn auch mit Before (im Schema) hätte OrderSend nur bei Placed zurückgegeben werden dürfen. Zumal die Fälle auf verschiedenen Demoservern auftreten, auf denen es kein externes System gibt.
Damit mein EA in einem Crash-Recovery-Block funktioniert, muss ich wissen, wie viele Kommissionen, Swaps und Gebühren im letzten Zeitraum getätigt wurden. Wie kann ich diese Informationen programmatisch abrufen?
Und wenn eine Bestellung bereits aufgegeben wurde, wird etwas zurückgeschickt?
AUFTRAGSSTATUS_PLATZIERT.
Kennung
Beschreibung
AUFTRAG_ZUSTAND_GESTARTET
Auftrag auf Gültigkeit geprüft, aber noch nicht vom Makler angenommen
AUFTRAGSZUSTAND_ERTEILT
Auftrag_Status_erteilt
Sie senden eine Handelsanforderung (OrderSend) - ihre Korrektheit wird geprüft, und wenn sie in Ordnung ist, ist die Rückgabe wahr. D.h., es handelt sich um eine Antwort über die Korrektheit der Handelsanfrage. Der Server hat diese Anfrage noch nicht erhalten.
Wenn die Anfrage vom Server angenommen wurde, wird die Antwort zurückgesendet: ORDER_STATE_PLACED - Auftrag ist eingestellt.
Ich bin mir nicht sicher, aber es ist logisch, dass es so funktioniert. Ich kenne keine Fallstricke.
Nun, das ist bereits beschrieben:
Kennung
Beschreibung
AUFTRAG_ZUSTAND_GESTARTET
Auftrag auf Gültigkeit geprüft, aber noch nicht vom Makler angenommen
AUFTRAGSZUSTAND_ERTEILT
Auftrag_Status_erteilt
Senden der Handelsanforderung (OrderSend) - ihre Korrektheit wird geprüft, und wenn sie OK ist, wird true zurückgegeben. D.h. es ist eine Antwort, dass der Handelsantrag korrekt ist. Der Server hat diese Anfrage noch nicht erhalten.
Wenn die Anfrage vom Server angenommen wurde, wird die Antwort zurückgesendet: ORDER_STATE_PLACED - Auftrag ist eingestellt.
Ich bin mir nicht sicher, aber es ist logisch, dass es so funktioniert. Ich weiß nicht, was ich vermeiden soll.
Sie senden eine Handelsanfrage (OrderSend) - ihre Korrektheit wird geprüft und, wenn sie in Ordnung ist, wird true zurückgegeben. Das heißt, dies ist eine Antwort, dass der Handelsantrag korrekt ist. Der Server hat diese Anfrage noch nicht erhalten.
Wie unterscheidet sich dann OrderSend von OrderSendAsync (abgesehen vom Namen)?
Ich habe oben geschrieben - nur meine Vorstellung von Logik. Ich arbeite schon seit langem im Bereich 4. Daher werde ich diese Frage wohl kaum beantworten können ;)
Siehe Absatz 7 hier https://www.mql5.com/ru/forum/23/page19#comment_2632240
Siehe hier https://www.mql5.com/ru/forum/23/page19#comment_2632240
Die Erklärung für den beschriebenen Fall könnte sein, dass der Server auf dem alten Build
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Änderungen in MetaTrader 5 Client Terminal Builds
MetaQuotes Software Corp., 2016.07.14 15:30
Nachstehend finden Sie eine schematische Darstellung des früheren (roter Pfeil) und des aktuellen Verhaltens der Funktion:
Der alte Build hat damit nichts zu tun.
Guten Tag zusammen!
Damit mein EA in einem Crash-Recovery-Block funktioniert, muss ich wissen, wie viele Kommissionen, Swaps und Gebühren im letzten Zeitraum getätigt wurden. Wie kann ich diese Informationen programmatisch abrufen?