Wie man im MT5 mit OrderSend korrekt arbeitet - Seite 7

 
fxsaber:

Ich denke, ein Beispiel wie dieses ist anschaulich.

Wenn Sie auf Sleep verzichten, kommt es häufig zu einer Situation, in der die Historie nach OrderClose noch nicht aktualisiert werden konnte und OrderCommission einen Wert zurückgibt, als ob OrderClose nicht durchgeführt worden wäre.

Beachten Sie, dass es sich um ein Skript handelt und es keine Event-overs geben kann. Der einzige Ausweg ist ein dummer Schlaf.

Wenn Sie dieses Skript mit SB neu schreiben, wird sich nichts ändern.

MT4 nicht mit MT5 verwechseln
 
prostotrader:
Verwechseln Sie MT4 nicht mit MT5

Dies und MT5

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006
 
fxsaber:

Das und MT5

OP_BUY

So etwas gibt es im MT5 nicht.

Sie funktionieren völlig unterschiedlich.

 
prostotrader:
OP_BUY

So etwas gibt es im MT5 nicht.

Sie funktionieren völlig unterschiedlich.

Anstatt den obigen Code im MT5 auszuführen, verschwenden Sie Ihre Zeit mit leerem Geschwätz.
 

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Bibliotheken: MT4Orders

fxsaber, 2016.11.14 13:33

// 13.11.2016:
//   Add: Полная синхронизация OrderSend, OrderModify, OrderClose, OrderDelete с торговым окружением (реал-тайм и история) - как в MT4.
//        Максимальное время синхронизации можно задать через MT4ORDERS::OrderSend_MaxPause в мкс. Среднее время синхронизации в MT5 ~1 мс.
 
fxsaber:
Sollte auf der Grundlage der obigen Ausführungen nach jedem Handel Sleep(1) gesetzt werden?
 
Alexey Kozitsyn:
Sollte auf der Grundlage der obigen Ausführungen Sleep(1) nach jedem Handel festgelegt werden?
Nein, die Synchronisationszeit ist variabel. Blick auf
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );
 
fxsaber:
Nein, die Synchronisationszeit ist variabel. Siehe
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );

Die Praxis zeigt, dass Sleep(1) in den allermeisten Fällen ausreichend ist.

Im Allgemeinen ist es recht seltsam, eine Antwort von OrderSend über eine veränderte Handelsumgebung zu erhalten, wenn diese veränderte Umgebung selbst noch nicht gelesen werden kann.

 
Vasiliy Sokolov:

Die Praxis zeigt, dass Sleep(1) in den allermeisten Fällen ausreichend ist.

Manchmal ist Sleep(0) ausreichend. Aber es muss eine funktionierende Lösung für alle Fälle und für minimale Wartezeiten geben.
 
fxsaber:
Manchmal ist Sleep(0) auch ausreichend. Aber es muss eine funktionierende Lösung für alle Fälle und für minimale Wartezeiten geben.

Warum sollten die Entwickler den Fehler von "Mr. Balloon" beheben müssen?

und außerdem gibt es OrderSendAsync().