Как правильно работать в MT5 с OrderSend - страница 7

 
fxsaber:

Наверное, такой пример показателен. 

Если не делать Sleep, то часто возникает ситуация, что история не успела обновиться после OrderClose и OrderCommission возвращает значение, будто OrderClose не делался.

Заметьте, что это скрипт и никаких Event-ов быть не может. Единственный выход - тупой Sleep.

Если переписать этот скрипт с помощью СБ, ничего не поменяется. 

Не путайте МТ4 с МТ5
 
prostotrader:
Не путайте МТ4 с МТ5

Это и MT5

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

Это и MT5

OP_BUY

Нет такого в МТ5

Они совершенно по-разному работают. 

 
prostotrader:
OP_BUY

Нет такого в МТ5

Они совершенно по-разному работают. 

Вместо того, чтобы запустить в MT5 приведенный код, тратите время на пустую болтовню.
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: MT4Orders

fxsaber, 2016.11.14 13:33

// 13.11.2016:
//   Add: Полная синхронизация OrderSend, OrderModify, OrderClose, OrderDelete с торговым окружением (реал-тайм и история) - как в MT4.
//        Максимальное время синхронизации можно задать через MT4ORDERS::OrderSend_MaxPause в мкс. Среднее время синхронизации в MT5 ~1 мс.
 
fxsaber:
Исходя из выше написанного, после каждой торговой операции нужно ставить Sleep(1)?
 
Alexey Kozitsyn:
Исходя из выше написанного, после каждой торговой операции нужно ставить Sleep(1)?
Нет, время синхронизации плавает. Посмотрите
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );
 
fxsaber:
Нет, время синхронизации плавает. Посмотрите
static bool MT4ORDERS::OrderSend( const MqlTradeRequest &Request, MqlTradeResult &Result );

Практика показывает что Sleep(1) хватает в подавляющем числе случаев.

Вообще же довольно странно получать от OrderSend ответ о изменившемся торговом окружении, когда само это изменившееся окружение прочитать еще нельзя.

 
Vasiliy Sokolov:

Практика показывает что Sleep(1) хватает в подавляющем числе случаев.

Иногда и Sleep(0) хватает. Но должно быть рабочее решение для всех случаев и за минимальное время ожидания.
 
fxsaber:
Иногда и Sleep(0) хватает. Но должно быть рабочее решение для всех случаев и за минимальное время ожидания.

Зачем из "г-на шарики катать", если разработчики должны исправить багу, да

и к тому же есть OrderSendAsync()