Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем добрый день!
У меня немного другая ситуация. Брокер БКС. Рыночный ордер исполняется далеко не с первого раза.
Отправляю приказ купить по рынку. Функция возвращает "Order placed" и номер ордера, но реально ордер не исполняется!
И так робот делает множество попыток. Посылает приказ купить по рынку, получает успешный ответ, но сделки нет. При этом номер ордера в ответе каждый раз новый.
В итоге позиция рано или поздно откроется, но приходится бомбардировать брокера ордерами, что явно неправильно.
Помогите пожалуйста, я не пойму это у меня робот глючит или брокер косячит? К роботу вроде претензий нет, все функции проверки проходят как положено и ответы проверяются.
Звонил брокеры, но "консультант" развёл руками, типа если руками сделка открывается, значит ошибка в роботе, а тут они не при делах.
Всем добрый день!
У меня немного другая ситуация. Брокер БКС. Рыночный ордер исполняется далеко не с первого раза.
Отправляю приказ купить по рынку. Функция возвращает "Order placed" и номер ордера, но реально ордер не исполняется!
И так робот делает множество попыток. Посылает приказ купить по рынку, получает успешный ответ, но сделки нет. При этом номер ордера в ответе каждый раз новый.
В итоге позиция рано или поздно откроется, но приходится бомбардировать брокера ордерами, что явно неправильно.
Помогите пожалуйста, я не пойму это у меня робот глючит или брокер косячит? К роботу вроде претензий нет, все функции проверки проходят как положено и ответы проверяются.
Звонил брокеры, но "консультант" развёл руками, типа если руками сделка открывается, значит ошибка в роботе, а тут они не при делах.
Сергей!
Не видя Вашего кода, сказать что-либо крайне затруднительно.
Но судя по распечатке, Вы не правильно контролируете установку ордера.
Сергей!
Не видя Вашего кода, сказать что-либо крайне затруднительно.
Но судя по распечатке, Вы не правильно контролируете установку ордера.
Михаил, это журнал терминала, т.е. он принимает приказ, говорит что он правильно заполнен, возвращает код успеха и номер ордера, т.е. он ставит ордер в очередь исполнения, но не исполняет. И так много-много раз.
Но я кажется разобрался в чём дело.
По алгоритму разрешённый риск позволяет открыть сделку на весь депозит. Объём сделки = доступные средства / ГО, т.е. депозит используется почти до самой последней копейки. (Тут конечно ошибка, так делать нельзя).
Формально денег достаточно для открытия сделки этим объёмом и поэтому ордер проходит проверки терминала и принимается ядром МТ5 (функция OrderSend возвращает true и номер ордера),
но дальше по очереди исполнения (у брокера или в шлюзе с биржой) где-то отвергается и в итоге не исполняется. Вот тут где-то и недоработка МТ5 со стороны Метаквотов.
Проблема в том, что мне как клиенту об этом никак не сообщают. Для робота всё прошло успешно, а фактически ордер отвергнут брокером/шлюзом/биржей (тут я только могу предполагать).
Функция OrderSend должна была отвергнуть ордер и вернуть роботу код ошибки TRADE_RETCODE_NO_MONEY, но почему-то этого не произошло.
Видимо надо подробно отследить ход исполнения транзакции OnTradeTransaction.
Михаил, это журнал терминала, т.е. он принимает приказ, говорит что он правильно заполнен, возвращает код успеха и номер ордера, т.е. он ставит ордер в очередь исполнения, но не исполняет. И так много-много раз.
Но я кажется разобрался в чём дело.
По алгоритму разрешённый риск позволяет открыть сделку на весь депозит. Объём сделки = доступные средства / ГО, т.е. депозит используется почти до самой последней копейки. (Тут конечно ошибка, так делать нельзя).
Формально денег достаточно для открытия сделки этим объёмом и поэтому ордер проходит проверки терминала и принимается ядром МТ5 (функция OrderSend возвращает true и номер ордера),
но дальше по очереди исполнения (у брокера или в шлюзе с биржой) где-то отвергается и в итоге не исполняется. Вот тут где-то и недоработка МТ5 со стороны Метаквотов.
Проблема в том, что мне как клиенту об этом никак не сообщают. Для робота всё прошло успешно, а фактически ордер отвергнут брокером/шлюзом/биржей (тут я только могу предполагать).
Функция OrderSend должна была отвергнуть ордер и вернуть роботу код ошибки TRADE_RETCODE_NO_MONEY, но почему-то этого не произошло.
Ещё раз повторяю, что Вы не правильно контролируете установку ордера.
То, что Вы получили БИЛЕТ ордера, совсем не означает, что ордер выставлен на биржу!
Ещё раз повторяю, что Вы не правильно контролируете установку ордера.
То, что Вы получили БИЛЕТ ордера, совсем не означает, что ордер выставлен на биржу!
Согласен, как оказалось у меня тут пробел в знаниях по этому вопросу.
До этого не сталкивался с подобным поведением, банально отправлял по рынку и всегда либо открывался, либо сразу получал ошибку.
В общем не было необходимости вникать в низкоуровневые нюансы исполнения ордера в очереди. А тут...
Согласен, как оказалось у меня тут пробел в знаниях по этому вопросу.
До этого не сталкивался с подобным поведением, банально отправлял по рынку и всегда либо открывался, либо сразу получал ошибку.
В общем не было необходимости вникать в низкоуровневые нюансы исполнения ордера в очереди. А тут...
После получения ордера, воспользуйтесь функцией OrderRealSelect()
https://www.mql5.com/ru/forum/67298/page2#comment_2089220
Приблизительно так нужно делать:
Приблизительно так нужно делать:
Айтуган, может всё-таки какие-то комментарии будут? :((
Я понимаю конечно, очень не хочется отвлекать Вас от отдыха на Кипре, но как-то молчание затянулось до неприличия долго. :((