Descargar MetaTrader 5

Se ha añadido a MetaTrader 5 el sistema de cobertura de registro de posiciones

21 marzo 2016, 13:34
MetaQuotes Software Corp.
2
1 703

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:

Sistema de registro de posiciones en la cuenta actual

Para abrir una cuenta demo con cobertura, active la opción correspondiente:

Abrir una cuenta demo con cobertura

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:

Sistema de compensación de registro de posiciones

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:

Sistema de cobertura de registro de posiciones

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.

Cierre de una posición con otra opuesta

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.

Operación de cierre de una posición con la opuesta en la historia de la cuenta


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.

Los ajustes del cálculo del margen de cobertura se encuentran en las especificaciones del contrato


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:
  • Para el volumen no solapado
  • Para el volumen solapado (si se indica el volumen del margen de cobertura)
  • Para las órdenes pendientes
El volumen total se calcula como la suma del margen calculado en cada una de las etapas.

Cálculo para el volumen no solapado
  • Se calcula el volumen sumado de todas las posiciones y las órdenes de mercado para cada uno de los lados: buy y sell.
  • Para cada uno de los lados se calcula el precio promedio ponderado de apertura de posiciones y órdenes: (precio de apertura de la posición u orden 1 * volumen de la posición u orden 1 + ... + precio de apertura de la posición u orden N * volumen de la posición u orden N) / (volumen de la posición u orden 1 + ... + volumen de la posición u orden N).
  • Se calcula el volumen no solapado (al volumen del lado mayor se le resta el menor).
  • Usando el volumen calculado y el precio promedio ponderado, se realiza el cálculo del margen conforme a la fórmula correspondiente al tipo de instrumento.
  • Al calcular el coeficiente del margen y la conversión de la divisa del margen a la divisa del depósito se usa el valor promedio ponderado del coeficiente y del curso.

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:
  • Se calcula el volumen solapado de todas las posiciones abiertas y las órdenes de mercado (del volumen del lado largo se resta el volumen no solapado).
  • Se calcula el precio promedio ponderado de apertura de posiciones y órdenes: (precio de apertura de la posición u orden 1 * volumen de la posición u orden 1 + ... + precio de apertura de la posición u orden N * volumen de la posición u orden N) / (volumen de la posición u orden 1 + ... + volumen de la posición u orden N).
  • Usando el volumen calculado, el precio promedio ponderado y la magnitud del margen de cobertura, se realiza el cálculo del margen conforme a la fórmula correspondiente al tipo de instrumento.
  • Al calcular el coeficiente del margen y la conversión de la divisa del margen a la divisa del depósito se usa el valor promedio ponderado del coeficiente y del curso.

Cálculo para las órdenes pendientes
  • Se calcula el margen de cada tipo de órdenes pendientes (por separado para Buy Limit, por separado para Sell Limit, etcétera).
  • Al calcular el coeficiente del margen y la conversión de la divisa del margen a la divisa del depósito se usa el valor promedio ponderado del coeficiente y del curso para cada tipo de ó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".
  • Se calcula el margen para el lado corto y largo de todas las órdenes abiertas y de mercado.
  • Se calcula el margen de cada tipo de órdenes pendientes (por separado para Buy Limit, por separado para Sell Limit, etcétera).
  • Se suma el margen del lado largo: posiciones y órdenes de mercado largas + órdenes pendientes largas.
  • Se suma el margen del lado corto: posiciones y órdenes de mercado cortas + órdenes pendientes cortas.
  • Como tamaño final del margen se usa el mayor de los valores calculados.


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.

Para modificar o cerrar una posición en el sistema de cobertura debe indicar necesariamente su ticket (MqlTradeRequest::ticket). En el sistema de compensación el ticket también se puede indicar, sin embargo, la identificación del símbolo se realiza según el nombre del símbolo.


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 Software Corp.
Artículo original: https://www.mql5.com/ru/articles/2299

mike3019
mike3019 | 28 mar. 2016 en 21:09

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 ??

mike3019
mike3019 | 28 mar. 2016 en 21:26

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

Interfaces gráficas II: Control "Menú principal" (Capítulo 4) Interfaces gráficas II: Control "Menú principal" (Capítulo 4)

Es el artículo final de la segunda parte de la serie sobre las interfaces gráficas. Aquí vamos a considerar la creación del control “Menú principal”. Se demostrará el proceso de su desarrollo y la configuración de los manejadores de las clases de la librería para una correcta reacción a las acciones del usuario. Además, hablaremos de los modos de conexión de los menús contextuales a los elementos del menú principal. Aparte de eso, trataremos la cuestión del bloqueo de los controles inactivos en el momento actual.

Recetas MQL5 - Programando los canales móviles Recetas MQL5 - Programando los canales móviles

En este artículo se muestra un método de programación del sistema de canales equidistantes. Se analizan ciertos matices en la construcción de este tipo de canales. Asimismo, se realiza una tipificación de los canales, proponiendo un método de canales móviles de tipo universal. Para implementar el código, se ha utilizado el instrumental de la POO.

Interfaces gráficas III: Botones simples y multifuncionales (Capítulo 1) Interfaces gráficas III: Botones simples y multifuncionales (Capítulo 1)

Vamos a comenzar el análisis del control como el botón. Vamos a mostrar los ejemplos de varias clases para la creación de un botón simple, un botón con funcionalidad ampliada (“botón con imagen” y “botón de división”), así como los botones interconectados (grupos de botones y “botones de opción”). Aparte de eso, vamos a introducir algunas adiciones en las clases ya existentes de los controles con el fin de ampliar sus posibilidades.

Interfaces gráficas III: Grupos de botones simples y multifuncionales (Capítulo 2) Interfaces gráficas III: Grupos de botones simples y multifuncionales (Capítulo 2)

El primer capítulo de la tercera pare de la serie estaba dedicada a los botones simples y multifuncionales. En el segundo capítulo hablaremos de los grupos de botones interconectados que permiten crear los controles, cuando el usuario puede elegir una opción de un determinado conjunto (grupo).