Как лучше проверить что ордер был размещен?

 

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

Во общем я бы хотел как то удостовериться что брокер разместил и принял мою заявку, я залез в документацию по этому вопросу, но столкнулся с недопониманием и прошу разъяснить мне некоторые моменты.

Правильно ли я понимаю что успешность размещения заявки надо проверять по TRADE_RETCODE_PLACED или TRADE_RETCODE_DONE или TRADE_RETCODE_DONE_PARTIAL

Просто мне надо понять был ли ордер размещен брокером или нет, сейчас я делаю это так


bool pushOrder(trade_order &order)
  {
   string comment;
   StringConcatenate(comment,"Automatic trading system, order # ",order.id);
   MqlTradeRequest request= {0};
   request.action=TRADE_ACTION_PENDING;
   request.symbol=order.symbols_name;
   request.volume=order.volume;
   request.sl=order.stop_loss;
   request.tp=order.take_profit;
   request.type=order.type_terminal;
   request.price=order.open_price;
   request.comment = comment;
   MqlTradeResult result= {0};
   OrderSend(request,result);
   Print(result.retcode);
   if(result.retcode != TRADE_RETCODE_DONE)
     {
      Print(__FUNCTION__,":",result.comment);
      Print("Failed to place an order, trying to place an order later...");
      return false;
     }
   else
     {
      return true;
     }
  }

Но не уверен что единственная проверка  TRADE_RETCODE_PLACED  будет правильной, дак как правильно проверить? 

Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
  • www.mql5.com
Коды возврата торгового сервера - Коды ошибок и предупреждений - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Попробуйте проследить по состоянию ордера ENUM_ORDER_STATE в структуре MqlTradeTransaction


Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
  • www.mql5.com
Структура торговой транзакции - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
0x41:

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

Во общем я бы хотел как то удостовериться что брокер разместил и принял мою заявку, я залез в документацию по этому вопросу, но столкнулся с недопониманием и прошу разъяснить мне некоторые моменты.

Правильно ли я понимаю что успешность размещения заявки надо проверять по TRADE_RETCODE_PLACED или TRADE_RETCODE_DONE или TRADE_RETCODE_DONE_PARTIAL

Просто мне надо понять был ли ордер размещен брокером или нет, сейчас я делаю это так


Но не уверен что единственная проверка  TRADE_RETCODE_PLACED  будет правильной, дак как правильно проверить? 

Я использую

if((result.retcode == TRADE_RETCODE_PLACED) || (result.retcode == TRADE_RETCODE_DONE)) 
 
Всем большое спасибо за ответы, я думаю тему можно закрыть
Причина обращения: