ФОРТС: retcode 10013.

 

Здравствуйте, Михаил. Повторю вопрос:

1. Если на сервере МТ5 брокера или на бирже происходит сбой, то на команду

удалить СУЩЕСТВУЮЩИЙ ордер сервер возвращает:

ошибку 10013 =  TRADE_RETCODE_INVALID = Неправильный запрос ( Invalid request )

Можно взглянуть на кусок кода, который у Вас обрабатывает данную ситуацию? Не саму функцию удаления, а то, что ей предшествует. 

 
Alexey Kozitsyn:

Здравствуйте, Михаил. Повторю вопрос:

Можно взглянуть на кусок кода, который у Вас обрабатывает данную ситуацию? Не саму функцию удаления, а то, что ей предшествует. 

Добрый день! 

В теме ФОРТС: В помощь начинающим добавлены функции обработки кодов возврата

P/S, если не сложно, то удалите оттуда Ваше сообщение 

 
Михаил:

Добрый день! 

В теме ФОРТС: В помощь начинающим добавлены функции обработки кодов возврата

P/S, если не сложно, то удалите оттуда Ваше сообщение 

Удалю, не вопрос. Но Вы не правильно меня поняли. Я просил показать кусок кода до отправки транзакции, а не обработку результата транзакции.
 
Alexey Kozitsyn:
Удалю, не вопрос. Но Вы не правильно меня поняли. Я просил показать кусок кода до отправки транзакции, а не обработку результата транзакции.
https://www.mql5.com/ru/forum/58012/page2#comment_2017705
ФОРТС: OnTradeTransaction() коды возврата
ФОРТС: OnTradeTransaction() коды возврата
  • www.mql5.com
Сейчас, коды возврата торгового сервера функции OnTradeTransaction() выглядят так:. - Страница 2 - Категория: автоматические торговые системы
 
Понятно, спасибо.
 
А если вставить проверку статуса ордера?
 
Sergey Chalyshev:
А если вставить проверку статуса ордера?
Что Вы имеете ввиду?
 
Alexey Kozitsyn:
Что Вы имеете ввиду?

Типа того:

if(OrderGetInteger(ORDER_STATE)==ORDER_STATE_PARTIAL || OrderGetInteger(ORDER_STATE)==ORDER_STATE_PLACED)  trade.OrderDelete(trade_ticket);

Михаил знает о чем речь

 
Sergey Chalyshev:

Типа того:

Михаил знает о чем речь

Гм. Завтра проверю, спасибо. Вы сами ловите реткод 10013?
 
Sergey Chalyshev:

Типа того:

Михаил знает о чем речь

Привет, Сергей!

Нет, не поможет. 

Дело в том, что Invalid request (Неправильный запрос) должен приходить тогда,

когда ты не правильно заполнил поля в MqlTradeRequest (обычно, когда выставляется ордер).

А тут ситуация другая.  

Invalid request - приходит на ЛЮБОЕ действие эксперта.

В случае сбоя биржи должно быть что-то типа "Сервер биржи не отвечает" (TRADE_RETCODE_EXCHANGE_BUSY)

В случае "глюков" самого сервера МТ5 - "Сервер занят" (TRADE_RETCODE_SERVER_BUSY) 

 
Михаил:

Привет, Сергей!

Нет, не поможет. 

Дело в том, что Invalid request (Неправильный запрос) должен приходить тогда,

когда ты не правильно заполнил поля в MqlTradeRequest (обычно, когда выставляется ордер).

А тут ситуация другая.  

Invalid request - приходит на ЛЮБОЕ действие эксперта.

В случае сбоя биржи должно быть что-то типа "Сервер биржи не отвечает" (TRADE_RETCODE_EXCHANGE_BUSY)

В случае "глюков" самого сервера МТ5 - "Сервер занят" (TRADE_RETCODE_SERVER_BUSY) 

Нет, не поможет. Или не пробовал? (Ты же сам научил меня этому)

Другое дело, проверка статуса ордера перед отправкой приказа сводит на нет все приимущества асинхронного режима.

На реале  Invalid request у меня не получается. На демо было до введения проверки статуса ордера. 

С ответами сервера конечно много вопросов. Вместо  Invalid request скорее такой ответ должен быть:

14:33:34.831 FORTS (SBRF-12.15,M1) CTrade::OrderSend: modify #34133503 at 10605.00000 (sl: 0.00000 tp: 0.00000) [frozen

сегодня на демо словил.

Хотя слово  frozen меня пугает, плохое наследие форекс кухонь.