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


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


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

Есть торговый робот для 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 работает.

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

Спасибо!





Thanks:




15 Answers
LevNNN

Avatar
Date: 1/16/2020
Reply


Самостоятельно продвигаюсь в тестировании версии 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 я включил.

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

Topic starter
Thanks:

Support

Avatar
Date: 1/16/2020
Reply


Добрый день

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

LevNNN

Avatar
Date: 1/16/2020
Reply


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

Support

Avatar
Date: 1/16/2020
Reply


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

LevNNN

Avatar
Date: 1/16/2020
Reply


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

LevNNN

Avatar
Date: 1/17/2020
Reply


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

subscription = Trader.SubscribeLevel1(sec);

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

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

Topic starter
Thanks:

Support

Avatar
Date: 1/17/2020
Reply


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


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

LevNNN

Avatar
Date: 1/17/2020
Reply


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

Support

Avatar
Date: 1/17/2020
Reply


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

LevNNN

Avatar
Date: 1/17/2020
Reply


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

Support

Avatar
Date: 1/17/2020
Reply


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

LevNNN

Avatar
Date: 1/17/2020
Reply


Прикрепил.
FixServer.txt 31.4KB (2) MqlServer.txt 78.9KB (2)
Topic starter
Thanks:

Support

Avatar
Date: 1/20/2020
Reply


Добрый день

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

ghost-mo

Avatar
Training Donator
Date: 1/20/2020
Reply


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

LevNNN

Avatar
Date: 1/21/2020
Reply


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


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

loading
clippy