Хобрук: Ваш путь к мастерству в программировании

Платформа Forex MT4 – какой тип протокола/технологии используется для обновления графиков в режиме реального времени?

Платформа Forex MT4 – какой тип протокола/технологии используется для обновления графиков в режиме реального времени?

  • Веб-сокет?
  • мыльный/успокаивающий веб-сервис?
  • Другой?

Данные обновляются в режиме реального времени,


Ответы:


1

Начальное примечание

Много действительно умных человеко-лет было потрачено на попытки обратной инженерии подключиться к MT4/Server ‹--> MT4/Terminal коммуникации C/S .

Некоторые умерли сами по себе.

Некоторым не удалось пережить следующее изменение, внесенное просто еще одной сборкой XYZ.

Некоторые даже доходили до судебных исков от MetaQuotes, Inc. за нарушение или ущемление прав на защиту чьей-либо интеллектуальной собственности.

Так что лучше реально знать, что последует.

Как это работает?

В последней сборке MT4/Terminal 670+ используется несколько обычных потоковых подключений к MT4/Server.

Использование сканера портов любой марки для отображения, декодирования и анализа внутренних компонентов не требует много времени и усилий. Тем не менее, не забудьте предупреждение, [Исходное примечание] rulez.

Не существует прямых способов "обновить" объекты OHLC-свечи/объема графика MT4/Terminal

Существует множество способов добавления и управления дополнительными визуальными объектами на графиках МТ4, в т.ч. но не ограничиваясь этим, создать полноценный новый, многоуровневый, расширенный графический интерфейс, в котором определяемый пользователем ‹код приложения> сохраняет полный контроль в режиме реального времени как над MVC-GUI-элементы и TradingExecutionEngine.

Можно ли расширить текущую проприетарную архитектуру Metatrader?

Да

Исторически использовались три основные эпохи/подхода.

  1. Связь на основе сторонних DLL

  2. Коммуникации на основе служб ОС Windows

  3. MetaQuotes, Inc., «новые» языковые расширения MQL4 (после сборки 600+) для связи через сокеты

Определяемый пользователем ‹код приложения> может безопасно развернуть скорее потокобезопасную внешнюю инфраструктуру обмена сообщениями, чтобы лучше «убежать» от (хрупкого, а именно в пост-сборке 670+ эпоха) внутренние особенности MT4 и сохраняют полный контроль над «собственным» уровнем обмена сообщениями/потоковой передачей.

Примеры

MT4/Terminal с сокетом/удаленным python терминалом CLI на основе сокета и дополнительным псевдоязыком как для торговли, так и для автоматических запусков тестовых батарей по сценарию

MT4/Terminal с сокетом/удаленным внешним интегрированным сервисом RSS-канала

MT4/Terminal с сокетом/удаленным вычислителем на GPU для принятия решений AI/ML

MT4/Terminal с одноранговым обменом сообщениями через сокет/удаленное облако

11.08.2014
  • Я до сих пор не понимаю, как это так быстро? им нужно обновлять данные в режиме реального времени! а это тяжело! 11.10.2014
  • Быть конкретной. Что вы считаете быстрым? Каждую секунду процессор работает 1000 мс, 1 000 000 мс, 1 000 000 000 нс, поэтому хороший дизайн кода системы реального времени может многое сделать. Трудная часть — это хороший дизайн, а не время или данные. 11.10.2014
  • @001 за ваше приблизительное представление о том, насколько быстрой должна быть потоковая передача, вас могут заинтересовать цифры, изображенные на ››› stackoverflow.com/a /24750485/3666197 13.05.2015
  • @001 не могли бы вы [принять] предоставленный ответ, сэр? 19.07.2017

  • 2

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

    Пример подключения к серверу МТ4 через порт 443 с помощью telnet

    telnet x.x.x.x 443
    

    Запрос котировок по EURUSD

    WQUOTES-EURUSD
    

    Когда вы открываете график в терминале MT4, терминал запрашивает исторические данные графика с сервера и подписывается на новые тики для этого символа. Затем каждый раз, когда для выбранного графика поступает новый тик, терминал MT4 обновляет последнюю свечу на графике или создает новую. когда необходимо.

    Все вышеперечисленное делается по тому же протоколу.

    12.08.2014
    Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..