Котировки MT5 через WebSocket
Подключение, подписка, чтение тиков и завершение сеанса.
Пошаговая инструкция
- 0:00
Котировки MT5 через WebSocket
В этом уроке мы получим котировки MetaTrader пять через WebSocket. Подключим демосчёт, подпишемся на инструмент, разберём реальные сообщения сервера, а затем остановим поток и отключим терминал.
- 0:16
Откройте консоль API
Откройте эм ти пять точка эм эр пи си точка про. Консоль откроется автоматически. В разделе подключений выберите Connect Ex. В этом уроке мы только читаем котировки и не совершаем сделок.
- 0:33
Подключите демосчёт
Используйте Trial или свой ключ API. Введите логин демосчёта, торговый пароль и точное имя сервера брокера. Для нового подключения оставьте необязательное поле id пустым и нажмите «Выполнить запрос». Не раскрывайте свои учётные данные.
- 0:56
Сохраните id терминала
Для Connect Ex проверьте код состояния HTTP двести, затем ответ JSON. Если поле error содержит ошибку, сначала прочитайте её описание. При успехе в data возвращается terminal Instance Guid. Консоль сохраняет этот id для следующих запросов и показывает, что терминал подключён.
- 1:22
Выберите инструмент
В разделе подписок выберите On Symbol Tick. Сохраните id текущего подключения. В поле symbol Names укажите точное имя инструмента у брокера, здесь EURUSD. У разных брокеров названия и суффиксы могут отличаться. Нажмите «Подключить поток».
- 1:45
Следите за котировками
Индикатор подключения означает, что WebSocket открыт. Карточка котировки обновляется при поступлении тиков. Полученные кадры содержат реальные сообщения сервера. Это непрерывный поток, а не повторные HTTP-запросы. В каждом сообщении сначала проверяйте error, затем читайте data точка symbol Tick.
- 2:11
Разберите bid и ask
В объекте symbol Tick поле symbol обозначает инструмент. Bid — цена продажи, ask — цена покупки. Их разница — спред. Это котировки, а не подтверждение исполнения сделки. Last и volume могут быть нулевыми, если брокер не передаёт сведения о последней сделке по этому инструменту.
- 2:37
Используйте время UTC
Для единого времени в разных системах используйте time U T C или time M S C U T C для миллисекунд. На записи время брокера на два часа опережает явное время UTC. Не считайте поле времени брокера временем UTC только из-за буквы Z в строке. Время получения кадра — отдельная отметка.
- 3:03
Пример на JavaScript
Пример JavaScript использует защищённый адрес WebSocket и тот же инструмент. Браузер не позволяет задать произвольные заголовки WebSocket, поэтому ключ API и id терминала передаются в параметрах адреса. Не раскрывайте полный адрес. Разберите JSON, сначала обработайте error, затем прочитайте тик и время UTC.
- 3:31
Остановите подписку
Завершив работу, нажмите «Отключить» на панели потока. В коде закройте WebSocket. Это останавливает подписку, но не отключает сам терминал. Отсутствие новых сообщений не обязательно означает ошибку: проверьте подключение, имя инструмента и наличие котировок у брокера.
- 3:55
Отключите терминал
Теперь выберите метод Disconnect и выполните запрос с тем же id терминала. Проверьте код состояния HTTP двести и поле error. В успешном ответе на записи есть идентификатор терминала и время его работы. Индикатор меняется на «Отключён». Подписка и сеанс терминала завершены.