Разное #9. Включение проверки потоков данных. Коннекторы к OsEngine #88
Как включить проверку потоков данных из сокетов, если коннектор может останавливать трансляцию данных без оповещения.Неделю назад выяснили, что некоторые биржи в момент прекращения трансляции трейдов и стаканов по сокетам могут об этом не оповестить. Оставляют сокет в рабочем состоянии, а часть данных транслировать прекращают. В итоге создан механизм отслеживания данных по потокам с принудительным переподключением коннектора, если такое случилось.Работает этот механизм не везде. На данный момент включен только для биржи BingX. В остальных случаях его нужно будет включать.Разберёмся с тем, как это делать. 1. Разрешение сервера. IServerPermission.Для начала нужно исправить разрешение для сервера, обозначив ему самому, что нужно следить за обновлением данных.Делается это здесь: IsUseCheckDataFeedLogic – если True, то слежение за потоками у коннектора включается.CheckDataFeedLogic_ExceptionSecuritiesClass – массив классов, которые проверяться не будут. Если надо, можно оставить null.CheckDataFeedLogic_NoDataMinutesToDisconnect – максимальное время, по которому может быть задержка данных по стакану котировок по любому инструменту, после чего коннектор начнёт процедуру переподключения. Эта настройка умножается на три, чтобы получить максимальное время задержки по ленте сделок.Всё! После этого механизм анализа потока данных на отключения без предупреждения начнёт работать для коннектора. Можно больше ничего не делать. Далее информация справочная. 2. Реализация. Открываем AServer.Вся реализация механизма располагается в родительском классе любого коннектора в OsEngine: 3. Реализация. Время по стаканам и трейдам сохраняется.Активация механизма происходит в свойстве ServerRealization: Если в разрешениях коннектора стоит «запускать механизм», создаётся дополнительный поток, который будет просматривать данные:Передача последнего времени по ленте сделок:Передача последнего времени по стакану:Сам механизм проверки времени данных находится в отдельном регионе «Checking data streams subscribed to»Бумаги, по которым коннектор подписан на данные.Сервисная очередь данных. Добавлена, чтобы не нагружать работой поток, разбирающий данные.Метод, принимающий на анализ бумаги, на которые мы подписываемся.Само место анализа данных на отставание.Удачных алгоритмов!Комментарии открыты для друзей!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

Как включить проверку потоков данных из сокетов, если коннектор может останавливать трансляцию данных без оповещения.
Неделю назад выяснили, что некоторые биржи в момент прекращения трансляции трейдов и стаканов по сокетам могут об этом не оповестить. Оставляют сокет в рабочем состоянии, а часть данных транслировать прекращают. В итоге создан механизм отслеживания данных по потокам с принудительным переподключением коннектора, если такое случилось.
Работает этот механизм не везде. На данный момент включен только для биржи BingX. В остальных случаях его нужно будет включать.
Разберёмся с тем, как это делать.
1. Разрешение сервера. IServerPermission.
Для начала нужно исправить разрешение для сервера, обозначив ему самому, что нужно следить за обновлением данных.
Делается это здесь:
- IsUseCheckDataFeedLogic – если True, то слежение за потоками у коннектора включается.
- CheckDataFeedLogic_ExceptionSecuritiesClass – массив классов, которые проверяться не будут. Если надо, можно оставить null.
- CheckDataFeedLogic_NoDataMinutesToDisconnect – максимальное время, по которому может быть задержка данных по стакану котировок по любому инструменту, после чего коннектор начнёт процедуру переподключения. Эта настройка умножается на три, чтобы получить максимальное время задержки по ленте сделок.
Всё! После этого механизм анализа потока данных на отключения без предупреждения начнёт работать для коннектора. Можно больше ничего не делать. Далее информация справочная.
2. Реализация. Открываем AServer.
Вся реализация механизма располагается в родительском классе любого коннектора в OsEngine:
3. Реализация. Время по стаканам и трейдам сохраняется.
Активация механизма происходит в свойстве ServerRealization:
Если в разрешениях коннектора стоит «запускать механизм», создаётся дополнительный поток, который будет просматривать данные:
Передача последнего времени по ленте сделок:
Передача последнего времени по стакану:
Сам механизм проверки времени данных находится в отдельном регионе «Checking data streams subscribed to»
- Бумаги, по которым коннектор подписан на данные.
- Сервисная очередь данных. Добавлена, чтобы не нагружать работой поток, разбирающий данные.
- Метод, принимающий на анализ бумаги, на которые мы подписываемся.
- Само место анализа данных на отставание.
Удачных алгоритмов!
Комментарии открыты для друзей!
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