|
Свойства ордеров
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций OrderGet...() и HistoryOrderGet...().
Для функций OrderGetInteger() и HistoryOrderGetInteger()
Идентификатор |
Описание |
Тип |
ORDER_TIME_SETUP |
Время постановки ордера |
datetime |
ORDER_TYPE |
Тип ордера |
|
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 |
Тип исполнения по остатку |
|
ORDER_TYPE_TIME |
Время жизни ордера |
|
ORDER_MAGIC |
Идентификатор эксперта выставившего ордер (предназначен для того, чтобы каждый эксперт выставлял свой собственный уникальный номер) |
long |
ORDER_POSITION_ID |
Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию. Идентификатор этой позиции и устанавливается исполненному ордеру в этот момент. |
long |
Для функций OrderGetDouble() и HistoryOrderGetDouble()
Идентификатор |
Описание |
Тип |
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()
Идентификатор |
Описание |
Тип |
ORDER_SYMBOL |
Символ, по которому выставлен ордер |
string |
ORDER_COMMENT |
Комментарий |
string |
При отправке торгового запроса функцией OrderSend() для некоторых операций необходимо указать тип ордера. Тип ордера указывается в поле type специальной структуры MqlTradeRequest, и может принимать значения из перечисления 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 |
Каждый ордер имеет статус, описывающий его состояние. Для получения информации используйте функцию OrderGetInteger() или HistoryOrderGetInteger() с модификатором 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.
Идентификатор |
Описание |
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.
Идентификатор |
Описание |
ORDER_TIME_GTC |
Ордер будет находится в очереди до тех пор, пока не будет снят |
ORDER_TIME_DAY |
Ордер будет действовать только в течение текущего торгового дня |
ORDER_TIME_SPECIFIED |
Ордер будет действовать до даты истечения |
ORDER_TIME_SPECIFIED_DAY |
Ордер будет действовать до 00:00 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время. |