Всем добрый вечер.
Есть торговый робот для 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 работает.
В чем может быть проблема?! Что я делаю неверно?!
Спасибо!
Kommentare (15)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Самостоятельно продвигаюсь в тестировании версии 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 я включил.
Что скажет саппорт?! За саппорт я заплатил!)
Добрый день
MT4 не предоставляет стаканы, так как рынок Форекс их не имеет через данную систему. Если вам необходимы стаканы на FX рынке, то вы можете попробовать использовать прямой подключение через протокол FIX, если ваш брокер его предоставляет.
Мне стакан не нужен, мне их текущие котировки bid и ask нужны. Неужели нельзя их как-то получить?!
Возможно. Вы делаете подписку на стакан - SubscribeMarketDepth. Если вам нужен только лучшие цены, то для этого необходимо вызвать метод SubscribeLevel1. Рекомендуем вам протестировать подключение через наш пример SampleConnection.
Протестировал Ваш пример SampleConnection. В качестве MT4 использовал версию от dukascopy. Подключение создается, список инструментов получается, а вот дальше никаких котировок получить нельзя. Вываливается та же ошибка, что и у меня. Т.е. из Вашего примера тоже никак текущие котировки получить нельзя.
В примере какую кнопку при выделенном инструменте вы нажимали?
Попробовал метод SubscribeLevel1.
Пытаюсь в полях subscription найти котировки. Поля LastTrade или BestBid у поля security имеют null значение. Какое событие надо обрабатывать по этому методу из документации не понял.
Т.е текущие котировки инструмента в MT4 получить в реальном времени не получается.
В примере выскакивает ошибка, если нажать на кнопки "Стакан", "Стакан (advanced)", "Тики", "История сделок", "Лог заявок", Скриншот прикрепил.
MT4 не поддерживает ничего из вышеперечисленного. Только лучшие цены. Это кнопка Bid-Ask.
При нажатии на кнопку "Бид - оффер" в Вашем примере SampleConnection ничего не происходит. Скриншот прикрепил
Пожалуйста, прикрепите логи мт части.
Прикрепил.
Добрый день
Пожалуйста возьмите последнюю версию коннекторов МТ. Она совместимы с ночной сборкой АПИ.
Рекомендую использовать МТ5 с ним гораздо проще работать, через S#))
Спасибо! Новая версия заработала. В этой версии я еще обнаружил еще одно странное поведение ПО, куда
писать о проблеме - сюда?!