Свойства позиций

Результатом совершения торговых операций являются открытие позиции, изменение её объема и/или направления, или ее ликвидация. Торговые операции проводятся на основание ордеров, отправляемых функцией OrderSend() в виде торговых запросов. Для каждого финансового инструмента (символа) возможна только одна открытая позиция. Позиция имеет набор свойств, доступных для чтений функциями PositionGet...().

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

ENUM_POSITION_PROPERTY_INTEGER

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

Описание

Тип

POSITION_TICKET

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

Значение POSITION_TICKET соответствует MqlTradeRequest::position.

long

POSITION_TIME

Время открытия позиции

datetime

POSITION_TIME_MSC

Время открытия позиции в миллисекундах с 01.01.1970

long

POSITION_TIME_UPDATE

Время изменения позиции

datetime

POSITION_TIME_UPDATE_MSC

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

long

POSITION_TYPE

Тип позиции

ENUM_POSITION_TYPE

POSITION_MAGIC

Magic number для позиции (смотри ORDER_MAGIC)

long

POSITION_IDENTIFIER

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

 

Идентификатор позиции указывается в каждом ордере (ORDER_POSITION_ID) и сделке (DEAL_POSITION_ID), которая ее открыла, изменила или закрыла. Используйте это свойство для поиска ордеров и сделок, связанных с позицией.

 

При развороте позиции в режиме неттинга (единой сделкой in/out) идентификатор позиции POSITION_IDENTIFIER не изменяется. Однако при этом POSITION_TICKET изменяется на тикет ордера, в результате которого произошел разворот. В режиме хеджинга разворот позиции не предусмотрен.

long

POSITION_REASON

Причина открытия позиции

ENUM_POSITION_REASON

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

ENUM_POSITION_PROPERTY_DOUBLE

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

Описание

Тип

POSITION_VOLUME

Объем позиции

double

POSITION_PRICE_OPEN

Цена позиции

double

POSITION_SL

Уровень Stop Loss для открытой позиции

double

POSITION_TP

Уровень Take Profit для открытой позиции

double

POSITION_PRICE_CURRENT

Текущая цена по символу

double

POSITION_SWAP

Накопленный своп

double

POSITION_PROFIT

Текущая прибыль

double

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

ENUM_POSITION_PROPERTY_STRING

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

Описание

Тип

POSITION_SYMBOL

Символ, по которому открыта позиция

string

POSITION_COMMENT

Комментарий к позиции

string

POSITION_EXTERNAL_ID

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

string

 

Направление открытой позиции (покупка или продажа) определяется значением из перечисления ENUM_POSITION_TYPE. Для получения типа открытой позиции используйте функцию PositionGetInteger() с модификатором POSITION_TYPE.

ENUM_POSITION_TYPE

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

Описание

POSITION_TYPE_BUY

Покупка

POSITION_TYPE_SELL

Продажа

 

В свойстве POSITION_REASON содержится причина открытия позиции. Позиция может быть открыта в результате срабатывания ордера, который был выставлен из десктопного терминала, из мобильного приложения, с помощью советника и т.д. Возможные значения POSITION_REASON описываются в перечислении ENUM_POSITION_REASON.

ENUM_POSITION_REASON

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

Описание

POSITION_REASON_CLIENT

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

POSITION_REASON_MOBILE

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

POSITION_REASON_WEB

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

POSITION_REASON_EXPERT

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