Как работать с WebSockets в cTrader Algo
cTrader Algo API позволяет трейдерам и разработчикам получать доступ к различным веб-сервисам и ресурсам через соединение WebSocket. Протокол WebSocket более эффективен, чем HTTP для доступа к сети, поскольку он быстрее и поддерживает передачу данных в реальном времени.
В этой статье и соответствующем видео вы узнаете, как отправлять и получать сообщения через WebSockets.
Создание сиБота
В нашем примере мы намерены подключиться к фиду TraderMade, а затем вывести входящую информацию в журнал нашего сиБота.
Сначала мы переходим в приложение Algo, чтобы создать новый сиБот. На вкладке сиБоты нажмите кнопку Создать. Введите имя сиБота, например Web Sockets Example, а затем нажмите Создать.

Теперь мы можем изменить код сиБота для наших целей. Начнем с определения нового WebSocketClient.
1 | |
Затем мы инициализируем наш конечный Uri, который является местоположением, к которому мы будем подключаться.
1 | |
Нам нужно отредактировать метод OnStart(), использовать Uri для подключения к потоковому сервису и подписаться на событие TextReceived. Это событие возникает всякий раз, когда текст поступает в наше приложение через соединение.
1 2 3 4 5 | |
Мы хотим вывести полученное сообщение в TextReceived.
1 2 3 4 | |
Вы можете скопировать полный код ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | |
Нажмите кнопку Собрать или используйте сочетание клавиш Ctrl+B, чтобы собрать сиБота.
Нажмите кнопку Добавить экземпляр для сиБота. Выберите опцию Локально, выберите инструмент и счет, а затем нажмите кнопку Добавить экземпляр.

Перейдите на вкладку Журналы. Вы должны увидеть несколько сообщений сиБота, подтверждающих соединение.

Подписка на фид цены инструмента
Мы возвращаемся к редактору кода для нашего сиБота Web Sockets Example в приложении Algo. Здесь мы хотим подписаться на фид цены инструмента, используя сервис, к которому мы недавно подключились.
Напишите код для отправки сообщения о подписке на сервис в нашем методе OnStart().
1 2 3 | |
Примечание
Мы получили образец кода и токен с веб-сайта TraderMade.
Измените команду Print, чтобы заменить скобки, которые нельзя использовать в методе API Print().
1 | |
Наконец, закройте соединение в методе OnStop().
1 | |
Вы можете скопировать полный код ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
Пересоберите сиБота, а затем запустите его снова.
Перейдите на вкладку Журналы, как вы делали раньше. Теперь вы должны увидеть цену инструмента, транслируемую в реальном времени.

В этой статье показано, как использовать WebSockets для отправки и получения информации или сообщений в cTrader.