Проблема с выставлением ордеров для коннектора MT4 в версии 4.4.17


Проблема с выставлением ордеров для коннектора MT4 в версии 4.4.17
Atom Reply
1/22/2020


Есть торговый робот, который успешно работает для коннектора к Quik. Сейчас пытаюсь адаптировать его под коннектор для MT4 c версией 4.4.17.
Столкнулся со следующей проблемой. Ордера выставляются, передаются в MT4 и исполняются там.

Но почему то после второго или третьего ордера (закономерность не понятна) ордера перестают передаваться в торговую систему и остаются в коннекторе со статусом Pending. По всей видимости обрывается связь с торговой системой.
Логи от коннектора прикрепил. В чем может быть проблема?!

Спасибо!
FixServer.txt 21.9KB (1) MqlServer.txt 8.2KB (1)



Thanks:




11 Answers
LevNNN

Avatar
Date: 1/29/2020
Reply


Добрый день!
Вчера прислали новую версию коннектора для MT4. Пока ничего нового не произошло, выставленные ордера по прежнему остаются в статусе Pending
Иногда ордера проходят, но вместо одного ордера - срабатывают четыре!
Кстати, хочу сообщить , что все ордера, которые я выставляю, имеют цену 0. Т.е. я покупаю или продаю по рынку.

Вчерашние логи от новой версии коннектора прикрепил.
Хотелось бы получить работающую версию!
MqlServer.txt 63.8KB (1) FixServer.txt 31.9KB (1)
Topic starter
Thanks:

Support

Avatar
Date: 1/29/2020
Reply


Добрый день

Ошибку определили, мы пока не выложили обновление. Как только закончим работу, мы напишем в этом топике. Нотификация была, вероятно, от автоматического обновления файлов нашей системы выкладывания релизов.
Thanks:

Support

Avatar
Date: 1/29/2020
Reply


Ошибка связана с терминалом МТ4. Ваши заявки не принимаются терминалом по причине Неправильные стопы at commandNewOrder Where="commandNewOrder"" для ORD Ошибка коннектора в том, что он не транслирует статус заявки. Могли бы вы или на нашем примере SampleConnection указать какие именно параметры передаются в заявке? Или указать их ввиде кода. Так же просьба включить уровень логирования Verbose в LUA части и FIX сервера.
Thanks:

LevNNN

Avatar
Date: 1/29/2020
Reply


Код в моей программе очень простой :
Order order = new Order
{
Portfolio = ordPortfolio,
Security = sec,
Volume = volume,
Direction = sides,
ClientCode = _clientCode,
Price = price
};
Trader.RegisterOrder(order);

Точно такой же код я применяю для коннектора Quik, там все работает. Причем price обычно равна 0, т.е. покупаю или продаю по рынку.

Topic starter
Thanks:

Support

Avatar
Date: 1/30/2020
Reply


У вас разнонаправленные заявки? Просьба прислать логи под Verbose.
Thanks:

LevNNN

Avatar
Date: 1/30/2020
Reply


В общем случае заявки могут быть и однонаправленные и разнонаправленные - все зависит от состояния рынка. К сожалению класс StockSharp.Logging я не использую, поэтому логи под Verbose прислать не могу.
Что конкретно Вас интересует?!
Topic starter
Thanks:

Support

Avatar
Date: 1/31/2020
Reply


Логи выставляются из эксперта. Для этого при запуске эксперта в терминале нужно выставить в выпадающем списке уровень логирования.

Заявки отвергаются системой МТ4. Это не ошибка коннектора. В вашем случае ошибка в коннекторе в том, что не транслируется ошибочный статус. Мы это поправим, поэтому просим прислать логи под уровнем Verbose.
Thanks:

LevNNN

Avatar
Date: 1/31/2020
Reply


Прикрепил логи.
MqlServer.txt 4.3MB (3) FixServer.txt 2.2KB (2)
Topic starter
Thanks:

Support

Avatar
Date: 2/20/2020
Reply


Добрый день

Пожалуйста, возьмите последнюю версию. Подробнее, информация указана в соседнем топике https://stocksharp.ru/posts/m/49569/
Thanks:

Support

Avatar
Date: 2/20/2020
Reply


Для информации. Изменился файл mq4, поэтому закешированную версию ex4 необходимо удалить.
Thanks:

LevNNN

Avatar
Date: 2/20/2020
Reply


Добрый вечер! Стало определенно лучше. Если раньше после заявки выставлялось четыре одинаковых ордера, то теперь выставляется два. Но все равно коннектор работает не так как его программируем. Логи прикрепил.
MqlServer.txt 183.6KB (3)
Topic starter
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy