События с данными из рынка. BotTabSimple #2

26.11.2024 palmax

События с данными из рынка. BotTabSimple #2

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

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

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

CandleFinishedEvent. Завершилась свеча.

Самое популярное и рекомендуемое к использованию в логике роботов событие. Событие поставляет в робота массив завершённых свечей.

Статья про тип данных Candle: https://smart-lab.ru/company/os_engine/blog/1042581.php

Пример подписки на событие можно посмотреть здесь:

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

 

CandleUpdateEvent. Последняя свеча обновилась.

Событие поставляет в робота массив завершённых свечей + формируемую (незавершённую) свечу.

Статья про тип данных Candle: https://smart-lab.ru/company/os_engine/blog/1042581.php

Пример подписки на событие из робота:

  1. Подписка на событие.
  2. Обработчик события. Место для Вашей логики.
  3. Массив свечей, которые передаются в качестве параметров.
  1. Формирующаяся свеча на графике справа.
  2. Ранее сформированная (завершённая) свеча. Обратите внимание на индексы.

ВАЖНО!!!

  1. Использование этого события в тестере в полной мере возможно, только если Вы скачали ленту сделок для тестов.
  2. Событие может вызываться десятки и сотни раз внутри секунды. Использование данного события может повлечь за собой лишнюю нагрузку на ЦП, ибо, подписавшись таким образом на сотни инструментов и написав внутри сложную логику, возможно, что ЦП не будет успевать.

 

MarketDepthUpdateEvent. Обновился стакан заявок.

Событие поставляет в робота стакан котировок.

Статья про тип данных MarketDepth: https://smart-lab.ru/company/os_engine/blog/1042802.php

Пример подписки на событие из робота:

  1. Подписка на событие обновления стакана.
  2. Обработчик события. Место для Вашей логики.
  3. Стакан, передаётся в качестве параметра.
  1. Проверка наличия и уровней покупок и продаж. Надо проверять то, чем Вы будете пользоваться, т.к. стакан может приходить и с каким-то одним уровнем, если ликвидности на рынке нет.
  2. Лучшая покупка. Цена.
  3. Лучшая покупка. Объём.
  4. Лучшая продажа. Цена.
  5. Лучшая продажа. Объём.

ВАЖНО!!!

  1. Использование этого события в тестере в полной мере возможно, только если Вы скачали стаканы для тестов и запустили тестер в этом режиме.
  2. Событие может вызываться десятки и сотни раз внутри секунды.

 

NewTickEvent. Обезличенная сделка.

Событие поставляет в робота последнюю запись в ленте сделок. Объект Trade.

Статья про тип данных Trade: https://smart-lab.ru/company/os_engine/blog/1042480.php

Пример подписки на событие из робота:

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

ВАЖНО!!!

  1. Использование этого события в тестере в полной мере возможно, только если Вы скачали ленту сделок для тестов и запустили тестер в этом режиме.
  2. Событие может вызываться десятки и сотни раз внутри секунды.

 

BestBidAskChangeEvent. Изменилась цена лучшей покупки или продажи в стакане.

Событие поставляет в робота лучшую цену покупки и продажи в стакане, если они меняются.

Пример подписки на событие из робота:

 

  1. Подписка на событие изменения лучшей цены покупки или продажи в стакане.
  2. Обработчик события. Место для Вашей логики.
  3. Лучшая цена покупки.
  4. Лучшая цена продажи.

ВАЖНО!!!

  1. Использование этого события в тестере в полной мере возможно, только если Вы скачали стакан котировок для тестов и запустили тестер в этом режиме.
  2. Событие может вызываться десятки и сотни раз внутри секунды.

 

ServerTimeChangeEvent. Изменилось время сервера.

Событие поставляет в робота текущее время сервера, к которому подключен робот.

Пример подписки на событие из  робота:

 

  1. Подписка на событие изменения времени сервера.
  2. Обработчик события. Место для Вашей логики.
  3. Время сервера. Тип 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