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

Заявки на бирже. Класс Order. Примитивы в OsEngine #4

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

Сегодня поговорим про Ордера (Заявки). Мы их создаём в момент, когда хотим открыть позицию:

Заявки на бирже. Класс Order. Примитивы в OsEngine #4 

1. Что такое Ордер (Заявка) на бирже?

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

Ордер (биржевая заявка, приказ) – это поручение, направляемое на биржу, которое выражает намерение трейдера совершить торговую операцию купли или продажи финансового инструмента. Существует несколько разновидностей ордеров, отличающихся типом заказа, особенностью исполнения и дополнительными ограничениями. По типу исполнения выделяют рыночные, лимитные и условные заявки.

Рыночный ордер исполняется сразу после поступления на биржу при наличии контрагентов в виде лимитных заявок. Такой ордер не требует установки цены. Итоговая цена исполнения будет рассчитана на основании средней цены сделок, которые появятся в результате удовлетворения заявки.

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

Условный ордер подразумевает активацию заказа при возникновении заранее определенных условий. Например, к таким заявкам относится стоп ордер – приказ, высылаемый в ядро торговой системы после достижения ценой определенного значения.

 

2. Класс Order в OsEngine.

OsEngine как сам может создавать ордера, так и принимать их с биржи. В большинстве случаев заявки преобразуются в класс Order.

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

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

Заявки на бирже. Класс Order. Примитивы в OsEngine #4

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

Заявки на бирже. Класс Order. Примитивы в OsEngine #4

Рассмотрим подробно все члены класса Order.cs.

NumberUser – публичное поле типа Int. Задается программой, хранит уникальный в рамках терминала идентификатор объекта.

NumberMarket – публичное строковое поле. Хранит уникальный идентификатор заявки, предоставляемый биржей.

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

SecurityClassCode – общедоступное строковое поле. Определяет код класса инструмента, по которому была совершена транзакция.

PortfolioNumber – публичное строковое поле. Хранит номер счета, к которому принадлежит заявка.

Side – публичное поле типа Side. Указывает направление заявки. Значения перечисления Side:

  • None — используется при создании объектов, когда направление заявки не определено.
  • Buy — покупка.
  • Sell — продажа.

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

PriceReal – публичное свойство типа decimal. Возвращает фактическую цену исполнения заявки.

Volume – публичное поле типа decimal. Хранит значение объема, который изначально предполагалось получить ордером.

VolumeExecute – публичное свойство типа decimal. Возвращает объем, который уже был исполнен. Рассчитывается на основании сделок, принадлежащих этой заявке.

MyTrades – публичное свойство типа MyTrade. Хранит все сделки, принадлежащие этому ордеру.

State – публичное свойство типа OrderStateType. Определяет текущее состояние объекта. Может иметь следующие значения:

  • None — используется при создании объектов, когда состояние заявки не определено.
  • Active — ордер принят биржей и выставлен в книгу заявок.
  • Pending — заявка принята биржей и ожидает регистрации в системе.
  • Done — заявка полностью исполнена.
  • Partial — заявка исполнена частично.
  • Fall — ордер отвергнут торговой системой по причине наличия нерелевантных данных в полях объекта или в следствии внешних факторов, таких как неторговое время биржи.
  • Cancel — заявка была отменена пользователем или торговой системой.

TypeOrder — публичное поле типа OrderPriceType. Определяет тип ордера:

  • Limit — выставить ордер по определенной цене.
  • Market — исполнить ордер по текущим ценам.
  • Iceberg — выставить серию заявок с сокрытием части объема.

PositionConditionType – публичное поле типа OrderPositionConditionType. Определяет предназначение ордера:

  • None — не определено.
  • Open — ордер используется для открытия позиции.
  • Close — ордер используется для закрытия позиции.

Comment – общедоступное строковое поле. Может содержать вспомогательную информацию.

TimeCallBack – публичное поле типа DateTime. Хранит время первого ответа биржи на запрос.

TimeCancel – публичное поле типа DateTime. Хранит время отмены заказа.

TimeDone – публичное поле типа DateTime. Хранит время исполнения ордера.

TimeCreate – публичное поле типа DateTime. Время создания ордера в программе.

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

TimeExecuteFirstTrade – общедоступное свойство типа DateTime. Возвращает время первой сделки по ордеру. В случае отсутствия сделок возвращает время создания заявки.

LifeTime – общедоступное поле типа TimeSpan. Временной отрезок, по прошествии которого ордер будет отозван программой, если к тому моменту не исполнится.

IsStopOrProfit – публичное поле типа bool. Флаг, указывающий, является ли данный ордер связанной заявкой стоп-лосс или тейк-профит.

ServerType – публичное поле типа ServerType. Указывает на тип биржи, для которой предназначен этот ордер.

SetTrade – принимает сделку и проверяет ее принадлежность текущему ордеру. В случае положительного результата, добавляет в список и при необходимости изменяет состояние заявки.

GetMidlePrice – рассчитывает среднюю цену исполнения ордера на основании имеющихся сделок.

GetLastTradeTime – возвращает время последней сделки.

TradesIsComing – общедоступное свойство типа bool. Указывает на то, были ли сделки по ордеру.

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

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

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

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

Заявки на бирже. Класс Order. Примитивы в OsEngine #4

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

Заявки на бирже. Класс Order. Примитивы в OsEngine #4

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

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

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