![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот непонятно какое конкретно состояние у ордера было.
Для УДАЛЕНИЯ ордера, важно что он СУЩЕСТВУЕТ и не находится в "промежуточном" состоянии.
Посмотрите внимательно (со всеми объяснениями):
https://www.mql5.com/ru/forum/58012/page9#comment_2074928
Для УДАЛЕНИЯ ордера, важно что он СУЩЕСТВУЕТ и не находится в "промежуточном" состоянии.
Посмотрите внимательно (со всеми объяснениями):
https://www.mql5.com/ru/forum/58012/page9#comment_2074928
Все равно интересно, и может было бы полезно, в качестве четкого аргумента для сервисдеска.
Т.е Вы считаете, что функция CheckOrderState() написана не правильно?
P/S СД, как всегда молчит....
Т.е Вы считаете, что функция CheckOrderState() написана не правильно?
P/S СД, как всегда молчит....
Незнаю. Если было состояние ORDER_STATE_PLACED, то вероятно все тот же баг.
А если ORDER_STATE_PARTIAL, то неизвестно, про этот случай Алексанр не рассказывал, может какие тонкости.
В любом случае функцию можно улучшить, чтобы знать какое конкретно состояние было у ордера.
Незнаю. Если было состояние ORDER_STATE_PLACED, то вероятно все тот же баг.
А если ORDER_STATE_PARTIAL, то неизвестно, про этот случай Алексанр не рассказывал, может какие тонкости.
В любом случае функцию можно улучшить, чтобы знать какое конкретно состояние было у ордера.
Возможно и можно улучшить, но (по моему мнению) важно следующее:
1. Когда ордер находится в промежуточном состоянии, а именно:
ORDER_STATE_STARTED
ORDER_STATE_REQUEST_ADD
ORDER_STATE_REQUEST_MODIFY
ORDER_STATE_REQUEST_CANCEL
то с ним НИЧЕГО нельзя сделать, поэтому ORD_BUSY
(вообще не вижу смысла в этих состояниях)
2. Если ордера нет в истории, то он СУЩЕСТВУЕТ и может принимать ТОЛЬКО
в два состояния:
ORDER_STATE_PARTIAL = ORD_EXIST_PARTIAL
ORDER_STATE_PLACED = ORD_EXIST
3. Все эти умозаключения взяты не "с потолка", а из документации к MQL5,
и если у разработчиков есть какие-то "особенности", то они ОБЯЗАНЫ
были изложить их в мануале!
4. Я, например, не ясновидящий, и не могу знать, что разработчики имели ввиду
написав ту или иную функцию.
Какое дали объяснение - таков и результат!
P/S Конечно, можно что-то не правильно понять, но не в данном случае.
А почему, когда ордер "отфутболиыает" брокер (биржа), нет никакого кода возврата?
А почему, когда ордер "отфутболиыает" брокер (биржа), нет никакого кода возврата?
Не всегда этот код есть, когда отдаешь исполнение на сторону.
Мы проверим шлюзы и подумаем над заполнением этого кода возврата, если найдем точные ответы.
Не всегда этот код есть, когда отдаешь исполнение на сторону.
Мы проверим шлюзы и подумаем над заполнением этого кода возврата.
Сегодня был какой-то сбой на сервере МТ5 ордера реджектились, а причины нет (0 0).....
" Причина: ", result.retcode, " ", result.retcode_external );
2016.10.20 20:31:08.797 trader (TATN-12.16,H1) StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614027 Ордер отклонён.
2016.10.20 20:31:08.797 trader (TATN-12.16,H1) OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614027 Причина: 0 0
2016.10.20 20:31:08.801 trader (BR-12.16,M1) StopTrading: Время сервера = 20:31:08; Статус ордера = SELL_ORDER; Билет = 46614028 Ордер отклонён.
2016.10.20 20:31:08.801 trader (BR-12.16,M1) OnTradeTransaction: Sell ордер отклонён брокером(биржей). Билет = 46614028 Причина: 0 0
2016.10.20 20:31:08.804 trader (SNGP-12.16,H1) StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614029 Ордер отклонён.
2016.10.20 20:31:08.804 trader (SNGP-12.16,H1) OnTradeTransaction: Buy ордер отклонён брокером(биржей). Билет = 46614029 Причина: 0 0
2016.10.20 20:31:08.806 trader (MXI-12.16,M1) StopTrading: Время сервера = 20:31:08; Статус ордера = BUY_ORDER; Билет = 46614030 Ордер отклонён.