- Evento principal de Asesores Expertos: OnTick
- Principios y conceptos básicos: orden, transacción y posición
- Tipos de operaciones de trading
- Tipos de órdenes
- Modos de ejecución de órdenes por precio y volumen
- Fechas de vencimiento de órdenes pendientes
- Cálculo del margen para una orden futura: OrderCalcMargin
- Estimación del beneficio de una operación de trading: OrderCalcProfit
- Estructura MqlTradeRequest
- Estructura MqlTradeCheckResult
- Solicitar validación: OrderCheck
- Solicitar resultado del envío: estructura MqlTradeResult
- Enviar una solicitud de trading: OrderSend y OrderSendAsync
- Operaciones de compraventa
- Modificar los niveles de Stop Loss y/o Take Profit de una posición
- Trailing stop
- Cierre de una posición: total y parcial
- Cierre de posiciones opuestas: total y parcial
- Colocar una orden pendiente
- Modificar una orden pendiente
- Borrar una orden pendiente
- Obtener una lista de órdenes activas
- Propiedades de una orden (activas e históricas)
- Funciones para leer las propiedades de órdenes activas
- Seleccionar órdenes por propiedades
- Obtener la lista de posiciones
- Propiedades de posiciones
- Funciones de lectura de propiedades de posición
- Propiedades de transacción
- Seleccionar órdenes y transacciones del historial
- Funciones para leer propiedades de órdenes del historial
- Funciones para leer propiedades de transacciones del historial
- Tipos de transacciones de trading
- Evento OnTradeTransaction
- Peticiones síncronas y asíncronas
- Evento OnTrade
- Seguimiento de los cambios en el entorno de trading
- Crear Asesores Expertos multisímbolo
- Limitaciones y ventajas de los Asesores Expertos
- Crear Asesores Expertos en el Asistente MQL
Propiedades de posiciones
Todas las propiedades de posición se dividen en tres grupos según el tipo de valores: enteros y compatibles con ellos, números reales y cadenas. Se utilizan para leer funciones PositionGet similares a las funciones OrderGet. Describiremos las funciones en sí en la siguiente sección, y aquí daremos los identificadores de todas las propiedades que están disponibles para especificar en el primer parámetro de estas funciones.
Las propiedades de enteros se proporcionan en la enumeración ENUM_POSITION_PROPERTY_INTEGER.
Identificador |
Descripción |
Tipo |
|---|---|---|
POSITION_TICKET |
Ticket de posición |
ulong |
POSITION_TIME |
Hora de apertura de la posición |
datetime |
POSITION_TIME_MSC |
Hora de apertura de la posición en milisegundos |
ulong |
POSITION_TIME_UPDATE |
Hora de cambio de posición (volumen) |
datetime |
POSITION_TIME_UPDATE_MSC |
Hora de cambio de posición (volumen) en milisegundos |
ulong |
POSITION_TYPE |
Tipo de posición |
ENUM_POSITION_TYPE |
POSITION_MAGIC |
Número mágico de la posición (basado en ORDER_MAGIC) |
ulong |
POSITION_IDENTIFIER |
Identificador de la posición; un número único que se asigna a cada posición recién abierta y que no cambia durante toda su vida. |
ulong |
POSITION_REASON |
Motivo de la apertura de una posición |
ENUM_POSITION_REASON |
Por regla general, POSITION_IDENTIFIER corresponde al ticket de la orden que abrió la posición. El identificador de la posición se indica en cada orden (ORDER_POSITION_ID) y transacción (DEAL_POSITION_ID) que la abrió, modificó o cerró. Por lo tanto, es conveniente utilizarlo para buscar órdenes y transacciones relacionadas con una posición.
Si la orden se ejecuta parcialmente, pueden existir simultáneamente la posición y la orden pendiente activa para el volumen restante con entradas coincidentes. Además, dicha posición puede cerrarse a tiempo, y en la siguiente cumplimentación del resto de la orden pendiente, volverá a aparecer una posición con el mismo ticket.
En el modo de compensación, la inversión de una posición con una operación se considera un cambio de posición, no una nueva, por lo que POSITION_IDENTIFIER se conserva. Una nueva posición en un símbolo sólo es posible tras cerrar la anterior en volumen cero.
La propiedad POSITION_TIME_UPDATE sólo responde a cambios de volumen (por ejemplo, como resultado de un cierre parcial o un aumento de posición), pero no a otros parámetros como niveles Stop Loss/Take Profit o cargos de swap.
Sólo existen dos tipos de posiciones (ENUM_POSITION_TYPE):
Identificador |
Descripción |
|---|---|
POSITION_TYPE_BUY |
Comprar |
POSITION_TYPE_SELL |
Vender |
Las opciones para el origen de una posición, es decir, cómo se abrió la posición, se proporcionan en la enumeración ENUM_POSITION_REASON.
Identificador |
Descripción |
|---|---|
POSITION_REASON_CLIENT |
Activación de una orden cursada desde el terminal de sobremesa. |
POSITION_REASON_MOBILE |
Activación de una orden cursada desde una aplicación móvil. |
POSITION_REASON_WEB |
Activación de una orden cursada desde la plataforma web (navegador). |
POSITION_REASON_EXPERT |
Activación de una orden cursada por un Asesor Experto o un script. |
Las propiedades reales se recopilan en ENUM_POSITION_PROPERTY_DOUBLE.
Identificador |
Descripción |
|---|---|
POSITION_VOLUME |
Volumen de la posición |
POSITION_PRICE_OPEN |
Precio de la posición |
POSITION_SL |
Precio Stop Loss |
POSITION_TP |
Precio Take profit |
POSITION_PRICE_CURRENT |
Precio actual del símbolo |
POSITION_SWAP |
Swap acumulado |
POSITION_PROFIT |
Beneficio actual |
El tipo de precio actual corresponde a la operación de cierre de posición. Por ejemplo, una posición larga debe cerrarse vendiendo, por lo que el precio Bid de la misma se rastrea en POSITION_PRICE_CURRENT.
Por último, se admiten las siguientes propiedades de cadena (ENUM_POSITION_PROPERTY_STRING) para las posiciones.
Identificador |
Descripción |
|---|---|
POSITION_SYMBOL |
El símbolo en el que se abre la posición. |
POSITION_COMMENT |
Comentario de la posición |
POSITION_EXTERNAL_ID |
ID de posición en el sistema externo (en la bolsa) |
Después de revisar la lista de propiedades de posición, estamos listos para ver las funciones para leer estas propiedades.