Wie man im MT5 mit OrderSend korrekt arbeitet - Seite 4

 
fxsaber:
Leider nur durch eine Krücke - eine globale Variable des Terminals.

Und durch zusätzliche Krücken, um sicherzustellen, dass die Hauptvariable z. B. im Falle eines Absturzes gelöscht wird.

So ist meine Variante mit dem Warten auf eine Transaktion in der Historie zuverlässiger und einfacher. Aber es ist immer noch eine Krücke.

 

Ich habe es nicht überprüft, aber vielleicht erhalten ALLE EAs nach OrderSend ein entsprechendes Ereignis fürOnTradeTransaction.

Dann ist alles ohne Krücken und für mehrere EAs auf demselben Symbol gelöst.

 
prostotrader:

Möchten Sie, dass ich Ihnen helfe, diese Pannen zu umgehen (aus persönlicher Erfahrung beim Handel mit MT5-Robotern auf einem echten Konto)?

Hinzugefügt

Völlig kostenlos :)

Ich will es! :)
 
prostotrader:
Die Menschen wollen nicht selbst denken, sie wollen, dass andere es für sie tun... Das ist leider wahr.
Um denken zu können, muss man Informationen haben, über die man nachdenken kann. Wie kann man denken, wenn es nicht genügend Hintergrundinformationen gibt?
 
fxsaber:

Die Menschen denken nicht nur nach, sondern teilen auch ihre Lösungen. Leider schweigen die Entwickler dazu.

In der Dokumentation findet sich kein einziges Beispiel zu diesem Thema. Und das ist nur die Hauptfunktion.

Ich unterstütze. Wenn irgendwo geschrieben stünde, dass OrderSend() auf eine Antwort vom Server wartet und was dann passiert, bräuchte man sich keine Workarounds einfallen zu lassen, um das zu überprüfen.

Es gibt einen ausgezeichneten Artikel über Aufträge, Geschäfte und Positionen und die Arbeit mit ihnen und ihrem Cache, in dem alles genau beschrieben wird. Sie umgeht jedoch vollständig die Prozesse, die bei der Übermittlung von Bestellungen selbst ablaufen.

 
fxsaber:
Mein Vorschlag

Prostotrader:

Verwenden Sie es.

Was passiert, wenn das Ereignis OnTrade() ausgelöst wird, bevor die Verarbeitung von OnTick() abgeschlossen ist? Manchmal ist die Zeit von entscheidender Bedeutung. Es könnte problematisch sein, zu warten, bis OnTrade() erreicht wird. Außerdem ist die Funktion OrderSend() selbst so konzipiert, dass ich Informationen über ihre Ergebnisse direkt an Ort und Stelle erhalten kann. Oder ist es nicht so?
 
Oleg Shenker:
Und was passiert, wenn das Ereignis OnTrade() ausgelöst wird, bevor die Verarbeitung von OnTick() abgeschlossen ist? Manchmal ist die Zeit von entscheidender Bedeutung. Es kann problematisch sein, zu warten, bis das Ereignis OnTrade() eintritt. Außerdem ist die Funktion OrderSend() selbst so konzipiert, dass ich Informationen über ihre Ergebnisse direkt an Ort und Stelle erhalten kann. Oder ist es nicht so?

OrderSend() ist eine absolut synchrone Funktion - wenn ein Ticket empfangen wird, wird alles ausgeführt.

Nachstehend ein Beispiel

Hinzugefügt, und hier sind die Protokolle

https://www.mql5.com/ru/forum/38456/page85#comment_2888263

ФОРТС. Вопросы по исполнению
ФОРТС. Вопросы по исполнению
  • www.mql5.com
С большими проблемами удалось это сделать (начальник отдела по работе с профессиональными клиентами ДЦ Открытие Евгений Сергеевич,.
Dateien:
TestOrders.mq5  23 kb
 
Andrey Khatimlianskii:
Wird nicht ausgeführt, sondern an den MT5-Server gesendet.

Nein. Für die Börse - ging an die Börse (kann nicht erfüllt haben :) ), für FOREX Ich weiß es nicht

Hinzugefügt

D.h. (für die Börse), wenn Sie in der Funktion OrderSend(() ein Ticket erhalten, bedeutet dies, dass der Auftrag von der Börse angenommen wurde

Hinzugefügt

Siehe Abbildung (1375 gab es Änderungen)

 
Andrey Khatimlianskii:

Dies ist ein Sonderfall der Übermittlung eines Limitauftrags an eine Börse. Was ist mit einer Marktorder im Devisenhandel?

Ich sagte, dass ich keine Ahnung von FOREX habe.
 
Andrey Khatimlianskii:

Nicht ein einziges Mal in diesem Thread. Nur über MT5 und OrderSend-Synchronität.

Die Antwort passt also nicht.

Nein. Für Exchange - ging zu Exchange (vielleicht nicht erfüllt :) ), für FOREX ich weiß es nicht

Hinzugefügt

D.h. (für die Börse), wenn Sie in derFunktion OrderSend(() ein Ticket erhalten, bedeutet dies, dass der Auftrag von der Börse angenommen wurde

Hinzugefügt

Siehe Abbildung (1375 gab es Änderungen)