Comment travailler correctement dans MT5 avec OrderSend ? - page 7

 
fxsaber:

Je suppose qu'un exemple comme celui-ci est illustratif.

Si vous ne faites pas Sleep, vous obtenez souvent une situation où l'historique n'a pas eu le temps de se mettre à jour après OrderClose et OrderCommission renvoie une valeur comme si OrderClose n'avait pas été fait.

Notez qu'il s'agit d'un script et qu'il ne peut pas y avoir d'Event-over. La seule façon de s'en sortir est un sommeil stupide.

Si vous réécrivez ce script avec SB, rien ne changera.

Ne pas confondre MT4 et MT5
 
prostotrader:
Ne pas confondre MT4 et MT5

Ceci et MT5

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

Cela et MT5

OP_BUY

Cela n'existe pas dans MT5.

Ils fonctionnent de manière complètement différente.

 
prostotrader:
OP_BUY

Cela n'existe pas dans MT5.

Ils fonctionnent de manière complètement différente.

Au lieu d'exécuter le code ci-dessus dans MT5, vous perdez votre temps en bavardages inutiles.
 

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Bibliothèques : MT4Orders

fxsaber, 2016.11.14 13:33

// 13.11.2016:
//   Add: Полная синхронизация OrderSend, OrderModify, OrderClose, OrderDelete с торговым окружением (реал-тайм и история) - как в MT4.
//        Максимальное время синхронизации можно задать через MT4ORDERS::OrderSend_MaxPause в мкс. Среднее время синхронизации в MT5 ~1 мс.
 
fxsaber:
Sur la base de ce qui précède, faut-il mettre Sleep(1) après chaque transaction?
 
Alexey Kozitsyn:
Sur la base de ce qui précède, faut-il définir Sleep(1) après chaque transaction?
Non, le temps de synchronisation est flottant. Regardez
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );
 
fxsaber:
Non, le temps de synchronisation est flottant. Voir
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );

La pratique montre que Sleep(1) est suffisant dans la grande majorité des cas.

En général, il est assez étrange de recevoir une réponse d'OrderSend concernant un environnement commercial modifié, alors que cet environnement modifié lui-même ne peut pas encore être lu.

 
Vasiliy Sokolov:

La pratique montre que Sleep(1) est suffisant dans la grande majorité des cas.

Parfois, Sleep(0) est suffisant. Mais il doit y avoir une solution efficace pour tous les cas et pour un temps d'attente minimal.
 
fxsaber:
Parfois, Sleep(0) est également suffisant. Mais il doit y avoir une solution efficace pour tous les cas et pour un temps d'attente minimal.

Pourquoi les développeurs devraient-ils corriger le bug de "M. Ballon" ?

et en plus, il y a OrderSendAsync().