Продолжаем изучение скринеров. Сегодня взглянем на класс, реализующий скринеры. Что есть внутри.
1. Расположение источника BotTabScreener в проекте.
Для начала открываем интересующий нас класс. Внутри проекта источник находится здесь:

- BotTabScreener.cs – источник скринер. Сегодня будем смотреть на него.
- BotTabScreenerUi.cs – окно выбора множества инструментов.
2. Регионы класса BotTabScreener.
Открываем класс в Visual Studio:
Регионы внутри класса:
- Статическая часть, в которой происходит вызов прорисовки скринеров. Сделано это для того, чтобы только один поток отвечал за прорисовку, независимо от того, сколько скринеров создано.
- Сервисная часть, хранящая различные методы и свойства, нужные для работы источника в OsEngine.
- Место создания, хранения и удаления массива источников BotTabSimple.
- Место отрисовки таблиц инструментов по отдельному скринеру.
- Вызов окна сопровождения позиции.
- Работа с индикаторами.
- Логирование.
- Методы для работы с общими позициями скринера.
- Исходящие события, на которые можно подписываться из робота.
3. Регион «External position management».
Это тот регион, который точно Вам понадобиться при создании роботов с данным источником:

- Закрыть все позиции, открытые по инструментам скринера по маркету.
- Взять источник по номеру позиции.
- Запросить все открытые позиции по инструментам скринера.
4. Регион «Events».
Второе, что точно понадобиться при создании скринеров, это события. Обратите внимание, все события последним параметром будут выдавать источник, по которому это событие прошло:
- SubscribeOnTab – сервисный метод для подписки на события по отдельному источнику.
- NewTabCreateEvent – событие, вызываемое при создании нового источника по отдельному инструменту.
- CandleFinishedEvent – событие завершения свечи.
- CandleUpdateEvent – событие обновления свечи.
- NewTickEvent – событие появления нового трейда в ленте сделок.
- MyTradeEvent – событие появление нового моего трейда по ордерам робота.
- OrderUpdateEvent – событие обновления ордера.
- MarketDepthUpdateEvent – событие изменения стакана котировок.
- BestBidAskChangeEvent – событие изменения лучшей цены покупки и продажи.
- PositionClosingSuccessEvent – событие успешного закрытия позиции.
- PositionOpeningSuccessEvent – событие успешного открытия позиции.
- PositionNetVolumeChangeEvent – событие изменения объёма по позиции.
- PositionOpeningFailEvent – событие неудачного открытия позиции.
- PositionClosingFailEvent – событие неудачного закрытия позиции.
- PositionStopActivateEvent – событие активации стоп-приказа по позиции.
- PositionProfitActivateEvent – событие активации профит-приказа по позиции.
- PositionBuyAtStopActivateEvent – событие активации отложенной покупки.
- PositionSellAtStopActivateEvent – событие активации отложенной продажи.
Удачных алгоритмов!
Оглавление данной серии статей здесь: https://smart-lab.ru/company/os_engine/blog/1131003.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
