Как гарантированно выставить один отложенный ордер в МТ5 ? - страница 3

 
fxsaber #:
Пожалуйста, приведите название торгового сервера.

Deriv-Server

 
fxsaber #:
Пожалуйста, приведите название торгового сервера.

Для стресс-тестов использую ICMarketsSC-Demo.

На этом сервере очень часто такие ситуации можно словить:


 
Janis Ozols #:

Deriv-Server

Попробовал Deriv-Demo, все идеально отрабатывает.

 
Anatoli Kazharski #:

Для стресс-тестов использую ICMarketsSC-Demo.

На этом сервере очень часто такие ситуации можно словить:

Не удалось преодолеть даже секунду.

 
fxsaber #:

Не удалось преодолеть даже секунду.

Скорее всего это проявляется, когда цена двигается очень быстро.

На данный момент у меня тоже всё работает пока без задержек. 

 
fxsaber #:

Не удалось преодолеть даже секунду.

Нашёл видео в архиве, где удалось словить такой случай:

 
Janis Ozols:

Порекомендуйте, пожалуйста, как наиболее простым способом решить эту задачу?

Иными словами, как, находясь в обработчике OnTick, дождаться фактического (гарантированного) выставления отложенного ордера, отправленного из этого обработчика функцией OrderSend ?

Попробуйте запустить этот советник на час. Если баг второго ордера существует - будет алертить об этом.

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

#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 0.1, Ask - 1000 * _Point, 0, 0, 0);
  
  if (!OrderSelect(Ticket, SELECT_BY_TICKET))
    Alert("BUG - " + (string)Ticket);
  else
    OrderDelete(Ticket);
}
 
Всем огромное спасибо за помощь! 🤝