Изображение блога
OS_Engine_team
OS_Engine_team Блог компании Os_Engine
28 июля 2024, 11:28

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5

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

Сегодня поговорим про стакан или книгу заявок, как ещё это иногда называют. Почти в любом вёб-терминале он имеет такой вид:

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5 

1. Что такое стакан на бирже?

Неотъемлемым атрибутом любой торговой площадки является такая сущность, как книга заявок.

Абсолютно все сделки после валидации попадают в ядро биржи, в котором специальный алгоритм сводит покупателей с продавцами.

У книги заявок есть два сортированных списка. Первый называют бидами (Bids), хранит все лимитные заявки на покупку, лучшим в списке считается ордер с наивысшей ценой. Второй называют асками (Asks). Список хранит все заявки на продажу, в котором лучшей заявкой считается ордер с наименьшей ценой.

При наличии нескольких заявок с одинаковой ценой лучшей из них считается та, которая была получена раньше остальных. На основании книги заявок строится агрегированный стакан котировок, который мы привыкли видеть во всех терминалах и интерфейсах бирж. К примеру, в популярной бирже он выглядит так:

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5

Из-за своей формы он и получил название стакан.

 

2. Класс MarketDepth в OsEngine.

В OsEngine моделированием этой сущности занимается класс MarketDepth. По сути своей это снимок стакана на определенный момент времени. Класс MarketDepthLevel описывает одну строку из стакана.

На ГитХаб этот класс находится здесь: https://github.com/AlexWan/OsEngine/blob/master/project/OsEngine/Entity/MarketDepth.cs

Внутри проекта это здесь:

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5

Сам же класс, если Вы его откроете, выглядит следующим образом:

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5

Рассмотрим строение этих классов подробнее.

 

MarketDepth

Time – публичное поле типа DateTime. Хранит время создания текущего снимка.

Asks – публичное поле перечислимого типа. Содержит список всех уровней на продажу. Лучшая цена по индексу 0.

Bids – публичное поле перечислимого типа. Содержит список всех уровней на покупку. Лучшая цена по индексу 0.

AskSummVolume – общедоступное свойство типа decimal. Предоставляет суммарный объем всех уровней на продажу.

BidSummVolume – общедоступное свойство типа decimal. Предоставляет суммарный объем всех уровней на покупку.

SecurityNameCode – общедоступное строковое поле. Содержит наименование инструмента, которому принадлежит данный стакан заявок.

SetMarketDepthFromString – общедоступный метод. Принимает строку, содержащую данные по всем полям, парсит ее и инициализирует состояние объекта.

GetSaveStringToAllDepfh – общедоступный метод. В качестве параметра принимает необходимую глубину обработки уровней, возвращает строку, в которую записаны все поля объекта для дальнейшего сохранения в хранилище.

GetCopy – общедоступный метод возвращает глубокую копию текущего объекта.

 

MarketDepthLevel

Ask – публичное поле типа decimal. Содержит информацию о суммарном количество лотов на продажу по этому уровню.

Bid – публичное поле типа decimal. Содержит информацию о суммарном количестве лотов на покупку по этому уровню.

Price – публичное поле типа decimal. Цена текущего уровня.

Id – публичное поле типа long. Уникальный идентификатор ценового уровня.

 

3. Как можно использовать стакан в роботах на OsEngine?

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

Например, в публичной сборке есть пример HighFrequencyTrader, в котором реализован спам ордерами по лучшей цене инструмента. Используйте его как пример:

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5 

  1. Расположение примера в проекте.
  2. А здесь мы подписываемся на событие обновление стакана.
  3. Обработчик события обновления стакана.

Удачных алгоритмов!

Комментарии открыты для друзей!

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5

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

Биржевой стакан. Книга заявок. Примитивы в OsEngine #5

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн