Сегодня будем разбираться с тем, кто и как запрашивает у AServer данные по свечкам и трейдам. Делают это две подсистемы: OsData и CandleManager. Обсудим обе.

1. Регион Data upload.
Регион, в котором предоставляются методы для получения данных из коннектора.

- Блокиратор многопоточного доступа к методам региона под цифрами 3 и 4.
- Взять массив свечей на старте серии свечек. Вызывается во время активации серии свечек из CandleManager.
- Взять массив свечей для OsData.
- Взять массив трейдов для OsData.
2. Метод GetLastCandleHistory.
Его запрашивает CandleManager для старта серии свечных данных. Про него говорили вот в этой статье:
https://smart-lab.ru/company/os_engine/blog/975825.php
Сам метод в AServer:

- Если статус сервера не Connect, выходим.
- Если нет реализации сервера, выходим. На всякий случай, костыль.
- Запрашиваем у реализации свечи.
3. Метод GetCandleDataToSecurity.
Его запрашивает OsData, когда качает данные по какому-то инструменту за период.
Сам метод:

- Если списка бумаг нет, выходим.
- Если предыдущий старт сервера состоялся менее 5ти секунд назад, выходим.
- Если статус сервера не Connect, выходим.
- Штуки для поиска нужной нам бумаги для скачивания по имени и классу.
- Сам запрос к IServerRealization, к методу GetCandleDataToSecurity в защищённой от многопоточного доступа обёртке.
4. Метод GetTickDataToSecurity.
Его запрашивает OsData, когда качает данные по какому-то инструменту за период.
Сам метод:

- Если списка бумаг нет, выходим.
- Если предыдущий старт сервера состоялся менее 5ти секунд назад, выходим.
- Правка времени старта, если оно не указано.
- Если статус сервера не Connect, выходим.
- Штуки для поиска нужной нам бумаги для скачивания по имени и классу.
- Сам запрос к IServerRealization, к методу GetTickDataToSecurity в защищённой от многопоточного доступа обёртке.
Удачных алгоритмов!
Пост из серии «Коннекторы к OsEngine»
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support