Продолжаем учиться делать «Источники» для OsEngine. Источники – классы, дающие уникальную функциональность для торговых роботов.
Сегодня поговорим про общую логику работы источников в терминале.
1. Источники как доступ к группированным данным.
Если смотреть на данные доступные с биржи совсем сверху, то источники являются классами «преобразования» чистых рыночных данных. Источники дают расширенный функционал к тому, что уже есть на рынке, или преобразуют эти данные в совершенно новые формы:
Вспомним текущие источники:
- BotTabSimple (Текст. Видео.) – базовый и самый большой источник данных OsEngine. Позволяет получать информацию по какой-то одной бумаге и проводить по ней торговые операции. На нем основаны все остальные источники.
- BotTabIndex ( Текст. Видео. ) – источник для создания своих кастомных индексов, группированных и взвешенных определённым образом данных по разным бумагам вместе.
- BotTabPair ( Текст. Видео. ) – источник для торговли парами инструментов.
- BotTabScreener ( Текст. Видео. ) – источник для торговли неограниченным набором инструментов. Десятком или Сотней. Логика источника заточена под обработку данных по разным инструментам с помощью одного кода.
- BotTabPolygon (Текст. Видео. ) – источник для торговли валютным (треугольным) арбитражем.
- BotTabCluster (Текст. Видео. ) – источник для торговли на основе горизонтальных объёмов.
2. Роботы и источники.
Если смотреть со стороны робота, то для него это классы, которые дают ему определённого рода функциональность:
- Робот создаёт источники при помощи метода TabCreate и после этого может обращаться к определённому типу источника, запрашивая данные, выставляя заявки, подписываясь на события.
- Функциональность по развёртыванию источников реализует в себе класс BotPanel (родитель любого робота в OsEngine).
3. Как источник получает данные с рынка.
Источники как-то должны подписываться на события, происходящие в сервере, подключённом к торгам. Для этого на данный момент они используют класс CandleConnector. Все данные проходят через него:
- CandleConnector – класс, реализующий подписку на данные сервера. Через него в источники идут все данные, которые генерируются на стороне биржи.
- ServerMaster – класс, разворачивающий и хранящий в себе коннекторы к биржам.
- Все данные передаются в CandleConnector. Все запросы к серверам идут через CandleConnector.
- BotTabSimple – на прямую создаёт в себе экземпляр CandleConnector и обращается к нему.
- BotTabIndex – на прямую создаёт в себе экземпляр CandleConnector и обращается к нему.
- BotTabPairs – внутри себя имеет массив источников BotTabSimple, которые уже в свою очередь создают в себе CandleConnector.
- BotTabScreeners – внутри себя имеет массив источников BotTabSimple, которые уже в свою очередь создают в себе CandleConnector.
- BotTabPolygon – внутри себя имеет массив источников BotTabSimple, которые уже в свою очередь создают в себе CandleConnector.
- BotTabCluster – внутри себя имеет массив источников BotTabSimple, которые уже в свою очередь создают в себе CandleConnector.
ВАЖНО!!!
Несмотря на то, что на данный момент CandleConnector является единственным способом общения источников с серверами, он не обязателен для этого. Вполне возможно создавать свои Connector сразу. Например, в конце данной серии статей мы будем с Вами создавать источник BotTabNews и сделаем для него свой класс для подписки на сервера данных.
4. Проброс данных из Сервера в Робота и обратно.
И, возвращаясь к торговым роботам, для них (роботов) общение с биржей выглядит так:
- Красное – поток данных с биржи.
- Синее – поток заявок, отправляющихся на биржу.
Удачных алгоритмов!
Оглавление данной серии статей здесь.
Комментарии открыты для друзей!

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php
