Сегодня будем говорить про IServerRealization. Интерфейс, в котором надо будет писать конечную логику коннектора:
Что здесь на этой картинке:
- IServer – единый интерфейс коннекторов. То, как весь OsEngine их видит. Про него говорили вот здесь: https://smart-lab.ru/company/os_engine/blog/975571.php .
- Реализация коннектора с 2022 год у нас состоит в том, чтобы делать коннектор, делая его наследником AServer, плюс реализацию конкретных методов в IServerRealization.
IServerRealization в проекте.
Регионы IServerRealization.
- Доступ к статусу сервера и его статусу. Процедуры перезапуска коннектора.
- Запрос бумаг по подключению.
- Запрос портфелей по подключению.
- Подписка бумаги на получение трейдов и стаканов.
- Запрос исторических данных.
- Различные запросы и события для выставления заявок.
- Сообщения в Лог.
1. Регион: Service, Status, Connection.
- Тип сервера. Здесь надо возвращать название сервера, который Вы делаете. Это название нужно будет добавить в перечисление ServerType.
- Статус сервера. Может принимать два значения: Connect / Disconnect. На старте должно быть явно определено в Disconnect.
- Время сервера. Лучше его вообще не трогать. AServer сам о нём позаботится.
- Параметры сервера. Доступ к параметрам сервера, которые создавались в конструкторе сервера.
- Connect – вызывается, когда необходимо перевести статус сервера из Disconnect в Connect. Здесь должны располагаться механизмы подключения к бирже.
- Dispose – отключение от API и очищение памяти. Приведение коннектора к начальному состоянию.
- Исходящее событие: Соединение установлено. Необходимо подавать на верх, когда коннектор полностью готов к торговле.
- Исходящее событие: Соединение разорвано.
2. Регион: Securities.
- GetSecurities – запрашивается, когда нужно получить список бумаг доступных для торговли на площадке.
- Исходящее событие: Массив бумаг для торговли загружен и готов к использованию.
3. Регион: Portfolios.
- GetPortfolios – запрашивается, когда нужно получить список портфелей клиента доступных для торговли.
- Исходящее событие: Массив портфелей клиента готов к использованию и подгружен. Вызывается как при первом запросе, так и во время его обновления.
4. Регион: Security subscrible.
- Subscrible – подписка на определённую бумагу, на получение по ней ленты сделок и стакана котировок.
- Исходящее событие: обновился стакан котировок по инструменту.
- Исходящее событие: новый трейд по инструменту.
5. Регион: Data upload.
- GetLastCandleHistory – запросить последние свечи по инструменту. Вызывается в торгах для активации свечек.
- GetCandleDataToSecurity – вызывается OsData. Возвращает массив свечек исторический.
- GetTickDataToSecurity – вызывается OsData. Возвращает массив трейдов исторический.
6. Регион: Work with orders.
- SendOrder – исполнить ордер.
- ChangeOrderPrice – сменить цену ордера.
- CancelOrder – отменить ордер.
- CancelAllOrders – отменить все ордера.
- CancelAllOrdersToSecurity – отменить все ордера по бумаге.
- Исходящее событие: обновился ордер по портфелю клиента.
- Исходящее событие: новый трейд по портфелю клиента.
Удачных алгоритмов!
Пост из серии «Коннекторы к 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
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php