Здравствуйте, Михаил. Повторю вопрос:
Можно взглянуть на кусок кода, который у Вас обрабатывает данную ситуацию? Не саму функцию удаления, а то, что ей предшествует.
Добрый день!
В теме ФОРТС: В помощь начинающим добавлены функции обработки кодов возврата
P/S, если не сложно, то удалите оттуда Ваше сообщение
Добрый день!
В теме ФОРТС: В помощь начинающим добавлены функции обработки кодов возврата
P/S, если не сложно, то удалите оттуда Ваше сообщение
Удалю, не вопрос. Но Вы не правильно меня поняли. Я просил показать кусок кода до отправки транзакции, а не обработку результата транзакции.
![ФОРТС: OnTradeTransaction() коды возврата ФОРТС: OnTradeTransaction() коды возврата](/i/community/logo_mql5_small.png)
- www.mql5.com
А если вставить проверку статуса ордера?
Что Вы имеете ввиду?
Типа того:
if(OrderGetInteger(ORDER_STATE)==ORDER_STATE_PARTIAL || OrderGetInteger(ORDER_STATE)==ORDER_STATE_PLACED) trade.OrderDelete(trade_ticket);
Михаил знает о чем речь
Типа того:
Михаил знает о чем речь
Типа того:
Михаил знает о чем речь
Привет, Сергей!
Нет, не поможет.
Дело в том, что 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 меня пугает, плохое наследие форекс кухонь.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, Михаил. Повторю вопрос:
1. Если на сервере МТ5 брокера или на бирже происходит сбой, то на команду
удалить СУЩЕСТВУЮЩИЙ ордер сервер возвращает:
ошибку 10013 = TRADE_RETCODE_INVALID = Неправильный запрос ( Invalid request )
Можно взглянуть на кусок кода, который у Вас обрабатывает данную ситуацию? Не саму функцию удаления, а то, что ей предшествует.