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

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

Для функции HistoryDealGetInteger()

ENUM_DEAL_PROPERTY_INTEGER

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

Описание

Тип

DEAL_TICKET

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

long

DEAL_ORDER

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

long

DEAL_TIME

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

datetime

DEAL_TIME_MSC

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

long

DEAL_TYPE

Тип сделки

ENUM_DEAL_TYPE

DEAL_ENTRY

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

ENUM_DEAL_ENTRY

DEAL_MAGIC

Magic number для сделки (смотри ORDER_MAGIC)

long

DEAL_REASON

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

ENUM_DEAL_REASON

DEAL_POSITION_ID

Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции.

long

Для функции HistoryDealGetDouble()

ENUM_DEAL_PROPERTY_DOUBLE

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

Описание

Тип

DEAL_VOLUME

Объем сделки

double

DEAL_PRICE

Цена сделки

double

DEAL_COMMISSION

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

double

DEAL_SWAP

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

double

DEAL_PROFIT

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

double

Для функции HistoryDealGetString()

ENUM_DEAL_PROPERTY_STRING

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

Описание

Тип

DEAL_SYMBOL

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

string

DEAL_COMMENT

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

string

DEAL_EXTERNAL_ID

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

string

 

Каждая сделка характеризуется типом, возможные значения перечислены в ENUM_DEAL_TYPE. Для получения информации о типе сделки используйте функцию HistoryDealGetInteger() с модификатором DEAL_TYPE.

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_BUY) меняется на DEAL_TYPE_BUY_CANCELED, а ее прибыль/убыток обнуляется. Ранее полученная прибыль/убыток начисляется/списывается со счета отдельной балансовой операцией

DEAL_TYPE_SELL_CANCELED

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

DEAL_DIVIDEND

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

DEAL_DIVIDEND_FRANKED

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

DEAL_TAX

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

 

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

Все эти ситуации описаны значениями из перечисления ENUM_DEAL_ENTRY. Для получения этой информации о сделке используйте функцию HistoryDealGetInteger() с модификатором DEAL_ENTRY.

ENUM_DEAL_ENTRY

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

Описание

DEAL_ENTRY_IN

Вход в рынок

DEAL_ENTRY_OUT

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

DEAL_ENTRY_INOUT

Разворот

DEAL_ENTRY_OUT_BY

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

 

В свойстве DEAL_REASON содержится причина проведения сделки. Сделка может быть проведена в результате срабатывания ордера, выставленного из мобильного приложения или из MQL5 программы; либо в результате наступления события StopOut или начисления/списания вариационной маржи, и т.д. Возможные значения DEAL_REASON описываются в перечислении ENUM_DEAL_REASON. Для неторговых сделок, вызванных операциями изменения баланса, кредита, начисления комиссий и прочих, в качестве причины указывается DEAL_REASON_CLIENT.

ENUM_DEAL_REASON

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

Описание

DEAL_REASON_CLIENT

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

DEAL_REASON_MOBILE

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

DEAL_REASON_WEB

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

DEAL_REASON_EXPERT

Сделка проведена в результате срабатывания ордера, выставленного из MQL5-программы – советником или скриптом

DEAL_REASON_SL

Сделка проведена в результате срабатывания ордера Stop Loss

DEAL_REASON_TP

Сделка проведена в результате срабатывания ордера Take Profit

DEAL_REASON_SO

Сделка проведена в результате наступления события Stop Out

DEAL_REASON_ROLLOVER

Сделка проведена по причине переноса позиции

DEAL_REASON_VMARGIN

Сделка проведена по причине начисления/списания вариационной маржи

DEAL_REASON_SPLIT

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