Продолжаем обсуждать базовый источник в OsEngine – BotTabSimple.
Поговорим о том, на какие события с данными можно подписаться из робота, чтобы собирать его логику. Про основные.

События, которые рассматриваются в этой статье, внутри источника BotTabSimple находятся здесь:

CandleFinishedEvent. Завершилась свеча.
Самое популярное и рекомендуемое к использованию в логике роботов событие. Событие поставляет в робота массив завершённых свечей.
Статья про тип данных Candle: https://smart-lab.ru/company/os_engine/blog/1042581.php
Пример подписки на событие можно посмотреть здесь:

- Обработчик данного события будет вызываться только после того, как по инструменту, на который вы подписались, завершилась свеча.
- В качестве параметра в обработчик события будет передан массив завершённых свечек. Без новой.

- Самая новая завершённая свеча – та, что правая на графике.
- Самая старая свеча – та, что слева на графике.
CandleUpdateEvent. Последняя свеча обновилась.
Событие поставляет в робота массив завершённых свечей + формируемую (незавершённую) свечу.
Статья про тип данных Candle: https://smart-lab.ru/company/os_engine/blog/1042581.php
Пример подписки на событие из робота:

- Подписка на событие.
- Обработчик события. Место для Вашей логики.
- Массив свечей, которые передаются в качестве параметров.

- Формирующаяся свеча на графике справа.
- Ранее сформированная (завершённая) свеча. Обратите внимание на индексы.
ВАЖНО!!!
- Использование этого события в тестере в полной мере возможно, только если Вы скачали ленту сделок для тестов.
- Событие может вызываться десятки и сотни раз внутри секунды. Использование данного события может повлечь за собой лишнюю нагрузку на ЦП, ибо, подписавшись таким образом на сотни инструментов и написав внутри сложную логику, возможно, что ЦП не будет успевать.
MarketDepthUpdateEvent. Обновился стакан заявок.
Событие поставляет в робота стакан котировок.
Статья про тип данных MarketDepth: https://smart-lab.ru/company/os_engine/blog/1042802.php
Пример подписки на событие из робота:

- Подписка на событие обновления стакана.
- Обработчик события. Место для Вашей логики.
- Стакан, передаётся в качестве параметра.

- Проверка наличия и уровней покупок и продаж. Надо проверять то, чем Вы будете пользоваться, т.к. стакан может приходить и с каким-то одним уровнем, если ликвидности на рынке нет.
- Лучшая покупка. Цена.
- Лучшая покупка. Объём.
- Лучшая продажа. Цена.
- Лучшая продажа. Объём.
ВАЖНО!!!
- Использование этого события в тестере в полной мере возможно, только если Вы скачали стаканы для тестов и запустили тестер в этом режиме.
- Событие может вызываться десятки и сотни раз внутри секунды.
NewTickEvent. Обезличенная сделка.
Событие поставляет в робота последнюю запись в ленте сделок. Объект Trade.
Статья про тип данных Trade: https://smart-lab.ru/company/os_engine/blog/1042480.php
Пример подписки на событие из робота:

- Подписка на событие появления новой сделки.
- Обработчик события. Место для Вашей логики.
- Сделка передаётся в качестве параметра.

- Цена последней сделки.
- Объём последней сделки.
- Время последней сделки.
- Сторона последней сделки.
ВАЖНО!!!
- Использование этого события в тестере в полной мере возможно, только если Вы скачали ленту сделок для тестов и запустили тестер в этом режиме.
- Событие может вызываться десятки и сотни раз внутри секунды.
BestBidAskChangeEvent. Изменилась цена лучшей покупки или продажи в стакане.
Событие поставляет в робота лучшую цену покупки и продажи в стакане, если они меняются.
Пример подписки на событие из робота:
- Подписка на событие изменения лучшей цены покупки или продажи в стакане.
- Обработчик события. Место для Вашей логики.
- Лучшая цена покупки.
- Лучшая цена продажи.
ВАЖНО!!!
- Использование этого события в тестере в полной мере возможно, только если Вы скачали стакан котировок для тестов и запустили тестер в этом режиме.
- Событие может вызываться десятки и сотни раз внутри секунды.
ServerTimeChangeEvent. Изменилось время сервера.
Событие поставляет в робота текущее время сервера, к которому подключен робот.
Пример подписки на событие из робота:
- Подписка на событие изменения времени сервера.
- Обработчик события. Место для Вашей логики.
- Время сервера. Тип DateTime.
Удачных алгоритмов!
Комментарии открыты для друзей!

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
