В нескольких предыдущих постах серии мы разговаривали про IServer, свойства и методы, которые в нём есть. Их много и довольно разных. При этом каждое отдельно взятое API что-то поддерживает, а что-то нет. О том, что конкретно коннектор поддерживает, OsEngine должен знать ДО того, как начнёт запрашивать неработающий функционал. Для этого ServerPermission и существует.

Например, данные могут быть только свечные, или может не быть 15 минутных свечек. Или API может вообще не поддерживать скачку глубоких исторических данных. Или API не поддерживает какие-то торговые операции: нет Market ордеров, не работает перестановка цены ордера.
1. Расположение интерфейса в проекте.
2.Свойства IServerPermission.
3. Реализация на примере ALOR Open Api.
Каждый коннектор сделанный с 2023 года должен содержать реализацию данного класса с разрешениями. Посмотрим на реализацию разрешений сервера на примере Аlor.
Расположение:
- Таймфреймы, доступные для скачивания в OsData. Если вдруг вы поставите не верные разрешения, не пройдут автотесты OsData на доступность данных.
- Торговые разрешения. Точно также, устанавливайте обдуманно, иначе тесты не пройдут.
- Таймфреймы, доступные в боевых торгах.
4. Создание и хранение AlorServerPermission.
Идём в место создание всех разрешений для серверов. Это класс ServerMaster. Этот класс является статичным и виден из всего приложения:
Внутри класса ServerMaster создание, хранение и доступ к разрешениям серверов хранятся в регионе «Access to servers permissions»:
Внутри метода «GetServerPermission» расположено создание разрешений для Аlor (И других разрешений) коннектора:
5. Использование ServerPermission в OsEngine.
Жмём на методе GetServerPermission правой кнопкой мыши и в меню нажимаем на «Find All References»:
Всплывёт окно:
- Автотесты в счёт не берём. Про них говорить будем позже.
- AServer запрашивает разрешения для ордеров и время перезапуска сервера.
- Интерфейсы подключения данных запрашивают разрешения по таймфреймам.
- ConnectorCandle из логики выставления ордеров запрашивает разрешения для ордеров и время перезапуска сервера. Также предоставляет эти данные выше.
- Интерфейсы подключения данных запрашивают разрешения по таймфреймам.
- Интерфейсы подключения данных запрашивают разрешения по таймфреймам.
- OsData запрашивает разрешения по таймфреймам.
Удачных алгоритмов!
Пост из серии «Коннекторы к OsEngine»
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!
OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support
Курилка, общаемся здесь: https://t.me/o_s_a_chat
Регистрируйся в АЛОР и получай бонусы: 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
Подробнее https://smart-lab.ru/compan...









