Скачать MetaTrader 5

Свойства ордеров

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

Для функций OrderGetInteger() и HistoryOrderGetInteger()

ENUM_ORDER_PROPERTY_INTEGER

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

Описание

Тип

ORDER_TICKET

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

long

ORDER_TIME_SETUP

Время постановки ордера

datetime

ORDER_TYPE

Тип ордера

ENUM_ORDER_TYPE

ORDER_STATE

Статус ордера

ENUM_ORDER_STATE

ORDER_TIME_EXPIRATION

Время истечения ордера

datetime

ORDER_TIME_DONE

Время исполнения или снятия ордера

datetime

ORDER_TIME_SETUP_MSC

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

long

ORDER_TIME_DONE_MSC

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

long

ORDER_TYPE_FILLING

Тип исполнения по остатку

ENUM_ORDER_TYPE_FILLING

ORDER_TYPE_TIME

Время жизни ордера

ENUM_ORDER_TYPE_TIME

ORDER_MAGIC

Идентификатор эксперта выставившего ордер (предназначен для того, чтобы каждый эксперт выставлял свой собственный уникальный номер)

long

ORDER_REASON

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

ENUM_ORDER_REASON

ORDER_POSITION_ID

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

long

ORDER_POSITION_BY_ID

Идентификатор встречной позиции для ордеров типа ORDER_TYPE_CLOSE_BY.

long

Для функций OrderGetDouble() и HistoryOrderGetDouble()

ENUM_ORDER_PROPERTY_DOUBLE

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

Описание

Тип

ORDER_VOLUME_INITIAL

Первоначальный объем при постановке ордера

double

ORDER_VOLUME_CURRENT

Невыполненный объем

double

ORDER_PRICE_OPEN

Цена, указанная в ордере

double

ORDER_SL

Уровень Stop Loss

double

ORDER_TP

Уровень Take Profit

double

ORDER_PRICE_CURRENT

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

double

ORDER_PRICE_STOPLIMIT

Цена постановки Limit ордера при срабатывании StopLimit ордера

double

Для функций OrderGetString() и HistoryOrderGetString()

ENUM_ORDER_PROPERTY_STRING

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

Описание

Тип

ORDER_SYMBOL

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

string

ORDER_COMMENT

Комментарий

string

ORDER_EXTERNAL_ID

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

string

 

При отправке торгового запроса функцией OrderSend() для некоторых операций необходимо указать тип ордера. Тип ордера указывается в поле type специальной структуры MqlTradeRequest, и может принимать значения из перечисления ENUM_ORDER_TYPE.

ENUM_ORDER_TYPE

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

Описание

ORDER_TYPE_BUY

Рыночный ордер на покупку

ORDER_TYPE_SELL

Рыночный ордер на продажу

ORDER_TYPE_BUY_LIMIT

Отложенный ордер Buy Limit

ORDER_TYPE_SELL_LIMIT

Отложенный ордер Sell Limit

ORDER_TYPE_BUY_STOP

Отложенный ордер Buy Stop

ORDER_TYPE_SELL_STOP

Отложенный ордер Sell Stop

ORDER_TYPE_BUY_STOP_LIMIT

По достижении цены ордера выставляется отложенный ордер Buy Limit по цене StopLimit

ORDER_TYPE_SELL_STOP_LIMIT

По достижении цены ордера выставляется отложенный ордер Sell Limit по цене StopLimit

ORDER_TYPE_CLOSE_BY

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

 

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

ENUM_ORDER_STATE

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

Описание

ORDER_STATE_STARTED

Ордер проверен на корректность, но еще не принят брокером

ORDER_STATE_PLACED

Ордер принят

ORDER_STATE_CANCELED

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

ORDER_STATE_PARTIAL

Ордер выполнен частично

ORDER_STATE_FILLED

Ордер выполнен полностью

ORDER_STATE_REJECTED

Ордер отклонен

ORDER_STATE_EXPIRED

Ордер снят по истечении срока его действия

ORDER_STATE_REQUEST_ADD

Ордер в состоянии регистрации (выставление в торговую систему)

ORDER_STATE_REQUEST_MODIFY

Ордер в состоянии модификации (изменение его параметров)

ORDER_STATE_REQUEST_CANCEL

Ордер в состоянии удаления (удаление из торговой системы)

 

При отправке торгового запроса функцией OrderSend() для ордера можно задать политику исполнения в поле type_filling в специальной структуре MqlTradeRequest, допустимы значения из перечисления ENUM_ORDER_TYPE_FILLING. Для получения значения этого свойства используйте функцию OrderGetInteger() или HistoryOrderGetInteger() с модификатором ORDER_TYPE_FILLING.

ENUM_ORDER_TYPE_FILLING

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

Описание

ORDER_FILLING_FOK

Данная политика исполнения означает, что ордер может быть исполнен исключительно в указанном объеме. Если на рынке в данный момент не присутствует достаточного объема финансового инструмента, то ордер не будет исполнен. Необходимый объем может быть составлен из нескольких предложений, доступных в данный момент на рынке.

ORDER_FILLING_IOC

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

ORDER_FILLING_RETURN

Данный режим используется для рыночных (ORDER_TYPE_BUY и ORDER_TYPE_SELL), лимитных и стоп-лимитных ордеров (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT) и только в режимах "Исполнение по рынку" и "Биржевое исполнение". В случае частичного исполнения рыночный или лимитный ордер с остаточным объемом не снимается, а продолжает действовать.

Для ордеров ORDER_TYPE_BUY_STOP_LIMIT и ORDER_TYPE_SELL_STOP_LIMIT при активации будет создан соответствующий лимитный ордер ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT с типом исполнения ORDER_FILLING_RETURN.

 

Срок действия ордера можно задать в поле type_time специальной структуры MqlTradeRequest при отправке торгового запроса функцией OrderSend(). Допустимы значения из перечисления ENUM_ORDER_TYPE_TIME. Для получения значения этого свойства используйте функцию OrderGetInteger() или HistoryOrderGetInteger() с модификатором ORDER_TYPE_TIME.

ENUM_ORDER_TYPE_TIME

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

Описание

ORDER_TIME_GTC

Ордер будет находится в очереди до тех пор, пока не будет снят

ORDER_TIME_DAY

Ордер будет действовать только в течение текущего торгового дня

ORDER_TIME_SPECIFIED

Ордер будет действовать до даты истечения

ORDER_TIME_SPECIFIED_DAY

Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.

 

В свойстве ORDER_REASON содержится причина выставления ордера. Ордер может быть выставлен с помощью MQL5 программы, или из мобильного приложения, или в результате наступления события StopOut, и т.д.  Возможные значения ORDER_REASON описываются в перечислении ENUM_ORDER_REASON.

ENUM_ORDER_REASON

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

Описание

ORDER_REASON_CLIENT

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

ORDER_REASON_MOBILE

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

ORDER_REASON_WEB

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

ORDER_REASON_EXPERT

Ордер выставлен из MQL5-программы – советником или скриптом

ORDER_REASON_SL

Ордер выставлен в результате срабатывания Stop Loss

ORDER_REASON_TP

Ордер выставлен в результате срабатывания Take Profit

ORDER_REASON_SO

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