Свойства сделок

Сделка является отражением факта совершения торговой операции на основании ордера.

Один ордер может породить несколько сделок за счет исполнения по частям или встречного закрытия позиций.

Сделки характеризуются свойствами трех базовых типов: целочисленные (и совместимые с ними), вещественные, строковые. Каждое свойство описывается собственной константой в одном из перечислений: ENUM_DEAL_PROPERTY_INTEGER, ENUM_DEAL_PROPERTY_DOUBLE, ENUM_DEAL_PROPERTY_STRING.

Для чтения свойств сделок используются HistoryDealGet-функции. Все они предполагают, что необходимый участок истории был предварительно запрошен с помощью специальных функций выборки ордеров и сделок из истории.

Целочисленные свойства описаны в перечислении ENUM_DEAL_PROPERTY_INTEGER.

Идентификатор

Описание

Тип

DEAL_TICKET

Тикет сделки — уникальное число, которое присваивается каждой сделке

ulong

DEAL_ORDER

тикет ордера, на основании которого выполнена сделка

ulong

DEAL_TIME

Время совершения сделки

datetime

DEAL_TIME_MSC

Время совершения сделки в миллисекундах

ulong

DEAL_TYPE

Тип сделки

ENUM_DEAL_TYPE (см. ниже)

DEAL_ENTRY

Направление сделки — вход в рынок, выход из рынка или разворот

ENUM_DEAL_ENTRY (см. ниже)

DEAL_MAGIC

Magic-число для сделки (на базе ORDER_MAGIC)

ulong

DEAL_REASON

Причина или источник проведения сделки

ENUM_DEAL_REASON (см.ниже)

DEAL_POSITION_ID

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

ulong

Возможные типы сделок представляет перечисление ENUM_DEAL_TYPE.

Идентификатор

Описание

DEAL_TYPE_BUY

Покупка

DEAL_TYPE_SELL

Продажа

DEAL_TYPE_BALANCE

Начисление баланса

DEAL_TYPE_CREDIT

Начисление кредита

DEAL_TYPE_CHARGE

Дополнительные сборы

DEAL_TYPE_CORRECTION

Корректирующая запись

DEAL_TYPE_BONUS

Перечисление бонусов

DEAL_TYPE_COMMISSION

Дополнительные комиссии

DEAL_TYPE_COMMISSION_DAILY

Комиссия, начисляемая в конце торгового дня

DEAL_TYPE_COMMISSION_MONTHLY

Комиссия, начисляемая в конце месяца

DEAL_TYPE_COMMISSION_AGENT_DAILY

Агентская комиссия, начисляемая в конце торгового дня

DEAL_TYPE_COMMISSION_AGENT_MONTHLY

Агентская комиссия, начисляемая в конце месяца

DEAL_TYPE_INTEREST

Начисления процентов на свободные средства

DEAL_TYPE_BUY_CANCELED

Отмененная сделка покупки

DEAL_TYPE_SELL_CANCELED

Отмененная сделка продажи

DEAL_DIVIDEND

Начисление дивиденда

DEAL_DIVIDEND_FRANKED

Начисление франкированного дивиденда (освобожденного от уплаты налога)

DEAL_TAX

Начисление налога

Варианты DEAL_TYPE_BUY_CANCELED и DEAL_TYPE_SELL_CANCELED отражают ситуацию, когда ранее совершенная сделка отменяется. В таком случае тип ранее совершенной сделки (DEAL_TYPE_BUY или DEAL_TYPE_SELL) меняется на DEAL_TYPE_BUY_CANCELED или DEAL_TYPE_SELL_CANCELED, а ее прибыль/убыток обнуляется. Ранее полученная прибыль/убыток начисляется/списывается со счета отдельной балансовой операцией.

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

Все эти ситуации описаны элементами перечисления ENUM_DEAL_ENTRY.

Идентификатор

Описание

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

Выход из рынка

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_OUT_BY

Закрытие встречной позицией

Причины проведения сделки сведены в перечисление ENUM_DEAL_REASON.

Идентификатор

Описание

DEAL_REASON_CLIENT

Срабатывание ордера, выставленного из десктопного терминала

DEAL_REASON_MOBILE

Срабатывание ордера, выставленного из мобильного приложения

DEAL_REASON_WEB

Срабатывание ордера, выставленного из веб-платформы

DEAL_REASON_EXPERT

Срабатывания ордера, выставленного советником или скриптом

DEAL_REASON_SL

Срабатывание ордера Stop Loss

DEAL_REASON_TP

Срабатывание ордера Take Profit

DEAL_REASON_SO

Наступление события Stop Out

DEAL_REASON_ROLLOVER

Перенос позиции между сутками

DEAL_REASON_VMARGIN

Начисление/списание вариационной маржи

DEAL_REASON_SPLIT

Сплит (понижение цены) инструмента, по которому имелась позиция

Свойства вещественного типа представлены перечислением ENUM_DEAL_PROPERTY_DOUBLE.

Идентификатор

Описание

DEAL_VOLUME

Объем сделки

DEAL_PRICE

Цена сделки

DEAL_COMMISSION

Комиссия по сделке

DEAL_SWAP

Накопленный своп при закрытии

DEAL_PROFIT

Финансовый результат сделки

DEAL_FEE

Оплата за проведение сделки, начисляется сразу после совершения сделки

DEAL_SL

Уровень Stop Loss

DEAL_TP

Уровень Take Profit

Два последних свойства заполняются по такому принципу. Для сделки входа или разворота берется значение Stop Loss/Take Profit из ордера, которым была открыта или развернута позиция. Для сделки выхода берется значение Stop Loss/Take Profit из позиции на момент её закрытия.

Строковые свойства сделок доступны по константам перечисления ENUM_DEAL_PROPERTY_STRING.

Идентификатор

Описание

DEAL_SYMBOL

Имя символа, по которому произведена сделка

DEAL_COMMENT

Комментарий к сделке

DEAL_EXTERNAL_ID

Идентификатор сделки во внешней торговой системе (на бирже)

Чтение свойств мы протестируем в разделе о HistoryDealGet-функциях, где будут представлены классы DealMonitor и DealFilter.