Descargar MetaTrader 5

Propiedades de órdenes

Ordenaciones de ejecutar las operaciones comerciales se formalizan mediante las órdenes. Cada orden posee una multitud de propiedades para la lectura. La información acerca de ellas se obtiene a través de la función OrderGet...() y HistoryOrderGet...().

Para las funciones OrderGetInteger() y HistoryOrderGetInteger()

ENUM_ORDER_PROPERTY_INTEGER

Identificador

Descripción

Tipo

ORDER_TICKET

Ticket de la orden. Un número único que se asigna a cada orden

long

ORDER_TIME_SETUP

Hora de establecimiento de la orden

datetime

ORDER_TYPE

Tipo de la orden

ENUM_ORDER_TYPE

ORDER_STATE

Estatus de la orden

ENUM_ORDER_STATE

ORDER_TIME_EXPIRATION

Plazo de expiración de la orden

datetime

ORDER_TIME_DONE

Hora de ejecución o cancelación de la orden

datetime

ORDER_TIME_SETUP_MSC

Tiempo de colocación de la orden para la ejecución en milisegundos desde 01.01.1970

long

ORDER_TIME_DONE_MSC

Tiempo de ejecución / retirada de la orden en milisegundos desde 01.01.1970

long

ORDER_TYPE_FILLING

Tipo de ejecución según el resto

ENUM_ORDER_TYPE_FILLING

ORDER_TYPE_TIME

Tiempo de vida de la orden

ENUM_ORDER_TYPE_TIME

ORDER_MAGIC

Identificador del Asesor Experto que ha colocado la orden (sirve para que cada Asesor Experto ponga su único número personal)

long

ORDER_POSITION_ID

Identificador de posición que se coloca en la orden a la hora de su ejecución. Cada orden ejecutada provoca una transacción que abre una nueva posición, o cambia una que ya existe. El identificador de esta misma posición se establece para la orden ejecutada en este momento.

long

ORDER_POSITION_BY_ID

Identificador de la posición opuesta para las órdenes del tipo ORDER_TYPE_CLOSE_BY.

long

Para las funciones OrderGetDouble() y HistoryOrderGetDouble()

ENUM_ORDER_PROPERTY_DOUBLE

Identificador

Descripción

Tipo

ORDER_VOLUME_INITIAL

Volumen inicial de la orden

double

ORDER_VOLUME_CURRENT

Volumen actual de la orden

double

ORDER_PRICE_OPEN

Precio especificado en la orden

double

ORDER_SL

Nivel Stop Loss

double

ORDER_TP

Nivel Take Profit

double

ORDER_PRICE_CURRENT

Precio actual del símbolo de la orden

double

ORDER_PRICE_STOPLIMIT

Precio Limit de la orden al activarse StopLimit

double

Para las funciones OrderGetString() y HistoryOrderGetString()

ENUM_ORDER_PROPERTY_STRING

Identificador

Descripción

Tipo

ORDER_SYMBOL

Símbolo de la orden

string

ORDER_COMMENT

Comentario

string

 

Cuando se envía una solicitud comercial mediante la función OrderSend(), algunas operaciones requieren la indicación del tipo de la orden. El tipo de la orden se introduce en el campo type de una estructura especial MqlTradeRequest y puede adquirir los valores de la enumeración ENUM_ORDER_TYPE.

ENUM_ORDER_TYPE

Identificador

Descripción

ORDER_TYPE_BUY

Orden de mercado para la compra

ORDER_TYPE_SELL

Orden de mercado para la venta

ORDER_TYPE_BUY_LIMIT

Orden pendiente Buy Limit

ORDER_TYPE_SELL_LIMIT

Orden pendiente Sell Limit

ORDER_TYPE_BUY_STOP

Orden pendiente Buy Stop

ORDER_TYPE_SELL_STOP

Orden pendiente Sell Stop

ORDER_TYPE_BUY_STOP_LIMIT

Al alcanzar el precio de la orden se coloca la orden pendiente Buy Limit por el precio StopLimit

ORDER_TYPE_SELL_STOP_LIMIT

Al alcanzar el precio de la orden se coloca la orden pendiente Sell Limit por el precio StopLimit

ORDER_TYPE_CLOSE_BY

Orden de cierre de una posición con la opuesta

 

Cada orden tiene su estatus que describe su estado. Para obtener más detalles utilice la función OrderGetInteger() o HistoryOrderGetInteger() con el modificador ORDER_STATE. Los valores admisibles se almacenan en la enumeración ENUM_ORDER_STATE.

ENUM_ORDER_STATE

Identificador

Descripción

ORDER_STATE_STARTED

Orden verificada pero aún sin aceptar por el corredor

ORDER_STATE_PLACED

Orden aceptada

ORDER_STATE_CANCELED

Orden retirada por el cliente

ORDER_STATE_PARTIAL

Orden ejecutada parcialmente

ORDER_STATE_FILLED

Orden ejecutada totalmente

ORDER_STATE_REJECTED

Orden rechazada

ORDER_STATE_EXPIRED

Orden retirada por expirarse el plazo

ORDER_STATE_REQUEST_ADD

Orden en el estado de registro (colocación en el sistema de trading)

ORDER_STATE_REQUEST_MODIFY

Orden en el estado de modificación (cambio de parámetros)

ORDER_STATE_REQUEST_CANCEL

Orden en el estado de eliminación (eliminación del sistema de trading)

 

Cuando se envía una solicitud comercial mediante la función OrderSend() se puede definir la política de ejecución de la orden en el campo type_filling en una estructura especial MqlTradeRequest; se admiten los valores de la enumeración ENUM_ORDER_TYPE_FILLING. Para obtener el valor de esta propiedad utilice la función OrderGetInteger() o HistoryOrderGetInteger() con el modificador ORDER_TYPE_FILLING.

ENUM_ORDER_TYPE_FILLING

Identificador

Descripción

ORDER_FILLING_FOK

Esta política de ejecución significa que la orden puede ser ejecutada exclusivamente en el volumen especificado. Si en este momento en el mercado no hay volumen necesario del instrumento financiero requerido, esta orden no se ejecutará. El volumen necesario puede ser cubierto por varias ofertas disponibles en este momento en el mercado.

ORDER_FILLING_IOC

Significa que el trader acepta realizar la transacción en el volumen máximo disponible en el mercado dentro del margen especificado en la orden. Si la ejecución completa no es posible, la orden será ejecutada en el volumen disponible, y el resto del volumen no cubierto será cancelado.

ORDER_FILLING_RETURN

Esta política de ejecución se utiliza para las órdenes de mercado (ORDER_TYPE_BUY y ORDER_TYPE_SELL), limitadas y limitadas con Stop (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT y ORDER_TYPE_SELL_STOP_LIMIT), y sólo en los modos "Ejecución por Mercado" y "Ejecución por Bolsa". En caso de la ejecución parcial, una orden limitada o de mercado con el volumen no cubierto no se anula, sino sigue estando vigente.

Para las órdenes ORDER_TYPE_BUY_STOP_LIMIT y ORDER_TYPE_SELL_STOP_LIMIT en el momento de la activación será creada la orden correspondiente limitada ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT con el tipo de ejecución ORDER_FILLING_RETURN.

 

Se puede determinar el plazo de vigencia de la orden en el campo type_time de la estructura especial MqlTradeRequest a la hora de enviar la solicitud comercial mediante OrderSend(). Se admiten los valores de la enumeración ENUM_ORDER_TYPE_TIME. Para obtener el valor de esta propiedad utilice la función OrderGetInteger() o HistoryOrderGetInteger() con el modificador ORDER_TYPE_TIME.

ENUM_ORDER_TYPE_TIME

Identificador

Descripción

ORDER_TIME_GTC

Orden estará en la cola hasta que se retire

ORDER_TIME_DAY

Orden estará vigente sólo en el transcurso del día comercial corriente

ORDER_TIME_SPECIFIED

Orden estará vigente hasta que se expire el plazo de vigencia

ORDER_TIME_SPECIFIED_DAY

Orden se mantiene activa hasta las 23:59:59 del día especificado. Si está hora no cae en ninguna sesión de trading, la expiración llega a la hora de trading más cercana.

 


Actualizado: 2016.06.22