В данной статье построчно разберём метод, который занимается подпиской на конкретную реализацию сервера. Что там происходит и зачем это нужно?
Идём и открываем CandleConnector. Сам класс находится в проекте вот здесь:
Далее переходим в регион подписки на данные. А конкретно, находим метод Subscrable:
1. Работа в цикле до подписания на данные.
Т.е. вся логика подписки находится внутри цикла. Выход из него:
- Ошибка.
- Создание серии свечек по заданной бумаге и подписка на поточные данные по ней.
2. Задержки разные для разных типов программ.
- Для оптимизатора 1 миллисекунда, ибо задержки если и могут быть, то мизерные на создание сервера подключения.
- Для тестера 10 миллисекунд. То же самое, что и с оптимизатором.
- Для реальных торгов полсекунды задержка, чтобы не нагружать ядро бессмысленными проверками и запросами. Здесь создание сервера может длиться очень долго, ведь происходит настройка сервера пользователем вручную.
3. Проверки на готовность сервера или экстренное закрытие потока подключения.
- Экстренное завершение потока подключения, вызванное внешним кодом.
- Выбран ли пользователем тип сервера и имя бумаги.
- Если сервера не развёрнуты, попытка развернуть их автоматически.
4. Блок поиска сервера для Оптимизатора.
В оптимизаторе серверы создаются сотнями и тысячами очень быстро в специальном пуле серверов ServerMaster. Для них реализована отдельная логика поиска:
5. Место, где мы точно понимаем, что наш сервер создан ранее.
- Последняя проверка на наличие сервера.
- Сервер точно есть, но ещё у него должен быть статус Connect.
- Подписываемся на события, исходящие из сервера. Это делается через отдельный метод рядом.
- Если текущее подключение тестовое, подписываемся на дополнительные события.
6. Цикл конечной подписки и конец метода.
7. Внутренности цикла конечной подписки.
- Проверка запроса отключения потока подписки.
- Если вдруг пользователь сменил тип сервера, нужно ждать.
- Задержки, разбитые по Реальной торговле / все остальные.
- Это то, ради чего эта статья написана. Запрос подключения бумаги на прослушку. В ответ должна прийти серия свечек.
- Подписка для оптимизатора.
На этом всё. Пожалуйста, найдите время для того, чтобы изучить класс ConnectorCandle. Это первый и самый важный пользователь любой реализации сервера, которая есть в OsEngine.
Удачных алгоритмов!
Пост из серии «Коннекторы к OsEngine»
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!
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