← Back

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

Всем добрый вечер.

Есть торговый робот для Quick. Все работает, в том числе и под версией 4.4.17 с новым классом Connector . Пробую перенести его на MT4, версия ПО 4.4.17. Коннектор установился успешно, к серверу подключается. Ордера проходят, хотя и возникает ошибка, которая в логе пишет следующее сообщение:.

22:36:38.907|Error |MqlServer |Cant close position #6239594. ERR=4108 22:36:38.907|Error |MqlServer |Ошибка закрытия позиции "ERROR (6239594): 4108/Text=Неверный номер тикета at tryCloseOrders Where="tryCloseOrders"" для #6239594 22:36:38.907| |MqlServer |closed position Volume=0.020000

Но не смотря на ошибку ордер со второго раза срабатывает. С этим я как - нибудь разберусь, но больше волнует другое.

Для мониторинга котировок подписываюсь на котировки с помощью метода

                Trader.SubscribeMarketDepth(sec);

Но в ответ никаких событий MarketDepthsChanged не приходит. Еще раз замечу, что тот же код для коннектора для Quic работает.

В чем может быть проблема?! Что я делаю неверно?!

Спасибо!

Comments (15)

Login or Create account, Log in or register to leave a comment

LevNNN
LevNNN Author

Самостоятельно продвигаюсь в тестировании версии 4.4.17. Саппорт молчит, не смотря на платную подписку!)

Подключил обработчик события Trader.MarketDataSubscriptionFailed и теперь видно сообщение текста ошибки:

{"Подписка 'MarketData,T(L)=2020/01/16 20:50:40.421,Sec=EURUSD@FOREX,Name=EURUSD,Price=0.00001,Vol=0.01,Dec=5,Cur=EUR,Sec=EURUSD@FOREX,Type=MarketDepth,IsSubscribe=True,TransId=75031074,SmallTF=True' не поддерживается установленным соединением."}

Скорее всего баг в коннекторе, так как галочку в поле MarketData в программе SampleConnection при формировании файла connection.xml я включил.

Что скажет саппорт?! За саппорт я заплатил!)

Support
Support

Добрый день

MT4 не предоставляет стаканы, так как рынок Форекс их не имеет через данную систему. Если вам необходимы стаканы на FX рынке, то вы можете попробовать использовать прямой подключение через протокол FIX, если ваш брокер его предоставляет.

LevNNN
LevNNN Author

Мне стакан не нужен, мне их текущие котировки bid и ask нужны. Неужели нельзя их как-то получить?!

Support
Support

Возможно. Вы делаете подписку на стакан - SubscribeMarketDepth. Если вам нужен только лучшие цены, то для этого необходимо вызвать метод SubscribeLevel1. Рекомендуем вам протестировать подключение через наш пример SampleConnection.

LevNNN
LevNNN Author

Протестировал Ваш пример SampleConnection. В качестве MT4 использовал версию от dukascopy. Подключение создается, список инструментов получается, а вот дальше никаких котировок получить нельзя. Вываливается та же ошибка, что и у меня. Т.е. из Вашего примера тоже никак текущие котировки получить нельзя.

Support
Support

LevNNN: Протестировал Ваш пример SampleConnection. В качестве MT4 использовал версию от dukascopy. Подключение создается, список инструментов получается, а вот дальше никаких котировок получить нельзя. Вываливается та же ошибка, что и у меня. Т.е. из Вашего примера тоже никак текущие котировки получить нельзя.

В примере какую кнопку при выделенном инструменте вы нажимали?

LevNNN
LevNNN Author

Попробовал метод SubscribeLevel1.

                subscription = Trader.SubscribeLevel1(sec);

Пытаюсь в полях subscription найти котировки. Поля LastTrade или BestBid у поля security имеют null значение. Какое событие надо обрабатывать по этому методу из документации не понял.

Т.е текущие котировки инструмента в MT4 получить в реальном времени не получается.

LevNNN
LevNNN Author

В примере выскакивает ошибка, если нажать на кнопки "Стакан", "Стакан (advanced)", "Тики", "История сделок", "Лог заявок", Скриншот прикрепил.

Support
Support

MT4 не поддерживает ничего из вышеперечисленного. Только лучшие цены. Это кнопка Bid-Ask.

LevNNN
LevNNN Author

При нажатии на кнопку "Бид - оффер" в Вашем примере SampleConnection ничего не происходит. Скриншот прикрепил

Support
Support

Пожалуйста, прикрепите логи мт части.

LevNNN
LevNNN Author

Прикрепил.

Support
Support

Добрый день

Пожалуйста возьмите последнюю версию коннекторов МТ. Она совместимы с ночной сборкой АПИ.

ghost-mo
ghost-mo

Рекомендую использовать МТ5 с ним гораздо проще работать, через S#))

LevNNN
LevNNN Author

Спасибо! Новая версия заработала. В этой версии я еще обнаружил еще одно странное поведение ПО, куда
писать о проблеме - сюда?!