
Se ha añadido a MetaTrader 5 el sistema de cobertura de registro de posiciones
La plataforma MetaTrader 5 se creó inicialmente para el comercio bursátil con un registro de posición basado en la compensación. Con el registro por compensación, solo se puede tener una posición de un instrumento financiero, por eso todas las operaciones posteriores realizadas con él provocan un cambio en el volumen, el cierre o el viraje de la posición actual. Para ampliar las posibilidades de los tráders de divisas fórex, se ha añadido a la plataforma un segundo sistema de registro: la cobertura. Ahora puede haber multitud de posiciones de un instrumento, incluidas las posiciones opuestas. Esto hace que sea posible poner en práctica estrategias de negociación con el llamado bloqueo, si el precio va en contra del tráder, este tiene la posibilidad de abrir una posición en la dirección opuesta.
El nuevo sistema de registro es análogo al usado en MetaTrader 4, por lo que será algo familiar para los tráders. Además, los tráders podrán valerse de todas la ventajas de la quinta versión de la plataforma: ejecución de órdenes usando varias operaciones (incluyendo las parciales), el simulador multidivisa y de flujo múltiple con soporte de la red de cálculos MQL5 Cloud Network y mucho más.
Ahora en una cuenta es posible comerciar en la bolsa, donde se usa la compensación y solo se puede tener una posición en un instrumento. Además, en la misma plataforma, pero en otra cuenta se puede comerciar en fórex y usar la cobertura.
A continuación, en el artículo se hablará con detalle sobre la compensación y la cobertura, así como sobre los cambios relacionados con la implementación del segundo sistema de registro.
El registro de la posición depende de la cuenta comercial
El tipo de registro de posición se establece a nivel de la cuenta, se muestra en el encabezamiento de la ventana del terminal, así como en el registro de actividad:
Para abrir una cuenta demo con cobertura, active la opción correspondiente:
Para abrir una cuenta real con cobertura, diríjase a su bróker.
Sistema de compensación
Este sistema presupone que en un momento concreto, en la cuenta puede haber solo una posición abierta del mismo símbolo:
- Si ya hay una posición en el instrumento, al realizarse una operación en la misma dirección, se produce un incremento del volumen de esta posición.
- Al realizarse una operación en la dirección opuesta, tiene lugar la reducción del volumen de la posición existente, su cierre (al realizarse una operación con un volumen igual al de la posición actual) o bien el viraje (si el volumen de la operación opuesta es mayor al de la posición actual).
En este caso, no tiene importancia como resultado de qué acción se realiza la operación en la dirección opuesta, si como fruto de la ejecución de una orden de mercado o debido a la activación de una orden pendiente.
Más abajo mostramos un ejemplo de ejecución de dos operaciones de compra de EURUSD con un volumen de 0.5 cada una de ellas:
Como resultado de la ejecución de estas operaciones, tenemos una posición general con un volumen de 1 lote.
Sistema de cobertura
Este sistema de registro de la posición permite tener multitud de posiciones comerciales de un mismo instrumento, incluso en direcciones diferentes.
Si hay una posición abierta de un instrumento comercial y el tráder efectúa una nueva operación (o se activa una orden pendiente), se abre una nueva posición. La posición existente no cambia.
Más abajo mostramos un ejemplo de ejecución de dos operaciones de compra de EURUSD con un volumen de 0.5 cada una de ellas:
Como resultado de la ejecución de estas operaciones, tenemos la apertura de dos posiciones diferentes.
Influencia del sistema de cálculo
Dependiendo del sistema de registro de las posiciones, algunas funciones comerciales de la plataforma se comportan de forma diferente:
- Cambian las reglas de herencia de Stop Loss y Take Profit.
- Para cerrar una posición en el sistema de compensación basta con realizar una operación comercial en el mismo símbolo y el mismo volumen, pero en dirección opuesta. Para cerrar una posición en el sistema de cobertura, elija claramente el comando "Cerrar posición" en el menú de contexto de la posición.
- En el sistema de cobertura no se puede hacer el viraje una posición. En la práctica, se procederá al cierre de la posición actual y se abrirá una nueva con el volumen restante.
- En el sistema de cobertura aparecerá una nueva condición para calcular el margen, el Margen de cobertura
Nuevo tipo de operación comercial Close By
Para las cuentas con cobertura de registro de posiciones se ha añadido un nuevo tipo de operaciones comerciales: el cierre de una posición con una opuesta. Esta operación permite cerrar simultáneamente dos posiciones en direcciones opuestas de un mismo instrumento. Si las posiciones opuestas tienen una cantidad diferente de lotes, entonces quedará abierta solo una orden de las dos. Su volumen será igual a la diferencia de lotes de las dos posiciones cerradas, y la dirección de la posición y el precio de apertura serán como en la mayor (en volumen) de las posiciones cerradas.
En comparación con el cierre individual de dos posiciones, el cierre por orden opuesta permite al tráder ahorrarse un spread:
- Con el cierre individual, el tráder paga dos veces: cierra la compra al precio menor (Bid), y la venta, al mayor (Ask).
- Con el cierre por orden opuesta, para cerrar la primera posición se usa el precio de apertura de la segunda posición, y para la segunda posición, el precio de apertura de la primera.
Al cerrar la posición con otra opuesta se establece una orden del tipo "close by". En el comentario a la misma se indican los tickets de las posiciones cerradas. El cierre de una pareja de posiciones opuestas tiene lugar mediante dos operaciones del tipo "out by". La magnitud del beneficio/pérdida total obtenido como resultado del cierre de ambas posiciones, se indica solo una una de las operaciones.
Peculiaridades del cálculo del margen en el sistema de cobertura de registro de posiciones
Al usar el sistema de cobertura del registro de posiciones, el cálculo del margen se realiza conforme a las mismas fórmulas que con el sistema de compensación. Sin embargo, la presencia de varias posiciones de un mismo instrumento tiene varias peculiaridades.
Las posiciones/órdenes están abiertas en una misma dirección
Para las posiciones se suma el volumen, se calcula el precio promedio ponderado de apertura. Los valores obtenidos se usan para calcular el margen conforme a la fórmula correspondiente al tipo de instrumento
Para los órdenes pendientes (con un coeficiente de margen igual a cero), el margen se calcula aparte.
Posiciones/órdenes en direcciones diferentes
Se considerarán posiciones cubiertas o solapadas aquellas que hayan sido abiertas conforme a un mismo instrumento, pero en direcciones diferentes. Existen dos métodos para calcular el margen de esa clase de posiciones. El método de cálculo lo determina el bróker.
Cálculo básico | Conforme al lado más largo |
---|---|
Se usa, si en el campo "Margen de cobertura" en las especificaciones del contrato no se indica "cálculo conforme al lado más largo". El cálculo consta de varias etapas:
Cálculo para el volumen no solapado
Cálculo para el volumen solapado Se usa, si en las especificaciones del contrato se ha indicado el valor "Margen de cobertura". En este caso, el margen se cobra tanto para el volumen solapado, como para el no solapado. Si para el instrumento se ha establecido un margen inicial, entonces el margen cubierto se indica como valor absoluto (en dinero). Si no se ha establecido un margen inicial (es igual a 0), entonces en el campo "Cubierto" se indica el tamaño del contrato. El cálculo del margen se realiza conforme a la fórmula que corresponde al tipo de instrumento, usando el tamaño de contrato indicado. Por ejemplo, hay dos posiciones Buy EURUSD 1 lot y Sell EURUSD 1 lot, el tamaño del contrato es igual a 100 000. Si en el campo "Cubierto" se indica el valor 100 000, entonces para ambas posiciones se tomará el margen como por 1 lote. Si indicamos 0, entonces no se cobrará margen por el volumen solapado. Por cada lote solapado de las posiciones, el margen se cobra de acuerdo con el valor indicado en el campo "Margen de cobertura" en las especificaciones del contrato:
Cálculo para las órdenes pendientes
| Se usa, si en el campo "Margen de cobertura" en las especificaciones del contrato se indica "cálculo conforme al lado más largo".
|
Cambios en MQL5
Ahora todas las posiciones tienen su ticket único. Normalmente, coincide con el ticket de la orden con la que fue abierta la posición. El ticket de todas las posiciones abiertas con anterioridad se designará después de actualizar hasta la nueva versión del terminal.
MqlTradeRequest
Se han añadido a la estructura de la solicitud comercial MqlTradeRequest dos nuevos campos:
- position — ticket de la posición. Hay que rellenarlo al cambiar o cerrar una posición para su identificación inequívoca. Normalmente, corresponde al ticket de la orden como resultado de la cual se abrió la posición.
- position_by — ticket de la posición opuesta. Se usa al cerrar una posición con otra opuesta, abierta en el mismo instrumento, pero en dirección contraria.
struct MqlTradeRequest { ENUM_TRADE_REQUEST_ACTIONS action; // Tipo de acción ejecutada ulong magic; // Marca del experto (identificador magic number) ulong order; // Ticket de la orden string symbol; // Nombre del instrumento comercial double volume; // Volumen solicitado de la operación en lotes double price; // Precio double stoplimit; // Nivel de la orden Stop Limit double sl; // Nivel de la orden Stop Loss double tp; // Nivel de la orden Take Profit ulong deviation; // Desviación máxima admisible con respecto al precio solicitado ENUM_ORDER_TYPE type; // Tipo de orden ENUM_ORDER_TYPE_FILLING type_filling; // Tipo de orden según ejecución ENUM_ORDER_TYPE_TIME type_time; // Tipo de orden según tiempo de acción datetime expiration; // Plazo de expiración de la orden (para las órdenes del tipo ORDER_TIME_SPECIFIED) string comment; // Comentarios a la orden ulong position; // Ticket de la posición ulong position_by; // Ticket de la posición opuesta };
MqlTradeTransaction
Se han añadido a la estructura de la transacción comercial MqlTradeRequest dos campos análogos:
- position — ticket de la posición a la que ha influido la transacción. Se rellena para las transacciones relacionadas con el procesamiento de las órdenes de mercado (TRADE_TRANSACTION_ORDER_* excepto TRADE_TRANSACTION_ORDER_ADD, donde el ticket de la posición no se ha adjudicado) y con la historia de las órdenes (TRADE_TRANSACTION_HISTORY_*).
- position_by — ticket de la posición opuesta. Se usa al cerrar una posición con otra opuesta, abierta en el mismo instrumento, pero en dirección contraria. Se rellena solo para las órdenes de cierre de una posición con la opuesta (close by) y las operaciones de cierre con una opuesta (out by).
struct MqlTradeTransaction { ulong deal; // Ticket de la operación ulong order; // Ticket de la orden string symbol; // Nombre del instrumento comercial ENUM_TRADE_TRANSACTION_TYPE type; // Tipo de transacción comercial ENUM_ORDER_TYPE order_type; // Tipo de orden ENUM_ORDER_STATE order_state; // Estado de la orden ENUM_DEAL_TYPE deal_type; // Tipo de transacción ENUM_ORDER_TYPE_TIME time_type; // Tipo de orden según tiempo de acción datetime time_expiration; // Plazo de expiración de la orden double price; // Precio double price_trigger; // Precio de activación de la orden stop limit double price_sl; // Nivel de Stop Loss double price_tp; // Nivel de Take Profit double volume; // Volumen en lotes ulong position; // Ticket de la posición ulong position_by; // Ticket de la posición opuesta };
PositionGetTicket
La nueva función PositionGetTicket retorna el ticket de la posición según el índice en la lista de posiciones abiertas y elige de forma automática esta posición para trabajar con ella posteriormente con la ayuda de las funciones PositionGetDouble, PositionGetInteger, PositionGetString.
ulong PositionGetTicket( int index // número en la lista de posiciones );
PositionSelectByTicket
La nueva función PositionSelectByTicket elige una posicón abierta para trabajar posteriormente con ella según el ticket indicado.
bool PositionSelectByTicket( ulong ticket // ticket de la posición );
PositionSelect
PositionSelect elige una posición según el nombre del símbolo para trabajar posteriormente con ella con la ayuda de las funciones PositionGetDouble, PositionGetInteger, PositionGetString. En el sistema de cobertura de registro de posiciones, donde puede haber varias posiciones de un símbolo, la función elegirá la posición con el ticket menor.
ACCOUNT_MARGIN_MODE
La nueva propiedad ACCOUNT_MARGIN_MODE permite obtener el modo de cálculo del margen y el registro de las posiciones en la cuenta:
Identificador | Descripción |
---|---|
ACCOUNT_MARGIN_MODE_RETAIL_NETTING | Se utiliza para el mercado no bursátil al registrar las posiciones en el modo "compensación" (en un símbolo puede haber solo una posición). El cálculo del margen se realiza basándose en el tipo de instrumento (SYMBOL_TRADE_CALC_MODE). |
ACCOUNT_MARGIN_MODE_EXCHANGE | Se usa para el mercado bursátil. El cálculo del margen se realiza basándose en los descuentos indicados en los ajustes de los instrumentos. Los descuentos son establecidos por el bróker, pero no pueden ser inferiores a los valores determinados por la bolsa. |
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING | Se usan para el mercado no bursátil al realizarse el registro independiente de posiciones ("cobertura", en un símbolo pueden existir varias posiciones). El cálculo del margen se realiza basándose en el tipo de instrumento (SYMBOL_TRADE_CALC_MODE) y teniendo en cuenta la existencia de varias posiciones de un mismo símbolo. |
SYMBOL_MARGIN_HEDGED
La nueva propiedad SYMBOL_MARGIN_HEDGED permite obtener el tamaño del margen de cobertura de un instrumento comercial. Las peculiaridades del cálculo del margen con el sistema de cobertura de registro de posiciones se muestran más arriba.
Nuevas constantes comerciales
Debido a la adición del nuevo tipo de operación comercial "Cierre por" han aparecido nuevas propiedades comerciales:
- TRADE_ACTION_CLOSE_BY — nuevo tipo de operación comercial — cierre de una posición con la opuesta.
- ORDER_TYPE_CLOSE_BY — nuevo tipo de orden — cerrar una posición con la opuesta.
- ORDER_POSITION_BY_ID — nueva propiedad de la orden — ticket de la posición opuesta, que se usa para el cierre de la actual.
- DEAL_ENTRY_OUT_BY — nuevo tipo de operación, cierre de una posición con la opuesta.
Cobertura y MQL5 Cloud Network — bonificaciones adicionales
Ahora con la ayuda de MetaTrader 5 se puede comerciar tanto en los mercados bursátiles, como en el popular retail fórex con cobertura. Y los desarrolladores de sistemas automáticos que usan cobertura, logran una ventaja importante más: ahora no solo tienen a su servicio el simulador multihilo, sino también la potencia de la red de computación distribuida MQL5 Cloud Network.
¡Actualice y use todas las nuevas posibilidades!
Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/2299





- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Hola!! Solo quiero hacer una pregunta, cuando estará disponible esta actualización, ya que descargo la plataforma de mql5 y aun no me salen los campos 16 y 17 de MqlTradeRequest ??
Hi! just i want to do a question, when will be ready this, because I downloaded again mt5 but dosent updated this fuction the option 16 y 17 de MqlTradeRequest ??
I cant open a Demo with hedging mode, somebody knows why?? mi platform doesnt give tha option to open a Demo with hedging mode.....
i would like somebody could help me....thanks a lot