English Русский 中文 Deutsch 日本語 Português
preview
Trading de cuadrícula automatizado utilizando órdenes límite en la Bolsa de Moscú MOEX

Trading de cuadrícula automatizado utilizando órdenes límite en la Bolsa de Moscú MOEX

MetaTrader 5Trading | 19 agosto 2022, 16:13
768 0
Roman Shiredchenko
Roman Shiredchenko

Introducción

En este artículo, describiremos con detalle cómo utilizar el enfoque comercial de cuadrícula al escribir un asesor experto en el lenguaje de estrategias comerciales MQL5. El asesor comerciará con una estrategia de cuadrícula en el terminal MetaTrader 5 en los mercados de la Bolsa de Moscú MOEX; también incluirá el cierre de posiciones usando stop loss o take profit, y eliminará las órdenes pendientes al suceder ciertas condiciones del mercado.


1. Descripción del principio comercial de la cuadrícula

En los ejemplos de este artículo, analizaremos el uso de un asesor experto de cuadrícula para automatizar el comercio de contratos de futuros de MOEX. Este asesor experto nos permite colocar órdenes a intervalos específicos dentro de un rango de precios determinado.

Durante el comercio con cuadrícula, las órdenes se colocan por encima y por debajo del precio establecido, creando una cuadrícula de órdenes con precios progresivamente más altos y más bajos. Como resultado, se crea una cuadrícula comercial.

Por ejemplo, podemos colocar órdenes de compra cada 100 rublos por debajo del precio de mercado de un contrato de futuros de acciones ordinarias de VTB Bank (PJSC) - VTBR -6.22 (en adelante - VBM 2), y también colocar órdenes de venta cada 100 rublos por encima de su precio de mercado. Esto nos permitirá sacar provecho del comercio en diversas condiciones.

El comercio con cuadrícula resulta ideal en mercados volátiles y laterales, cuando los precios fluctúan dentro de un rango predeterminado. Esta forma de comerciar nos permite obtener beneficios con los pequeños cambios del precio. Cuanto más frecuente sean los niveles de la cuadrícula, más a menudo se realizarán las transacciones. No obstante, esto conllevará mayores costes, ya que el beneficio en cada una de las órdenes se reducirá.

Por ello, deberemos encontrar un compromiso entre obtener un beneficio realizando muchas transacciones y una estrategia con menos órdenes, pero generando una gran ganancia en cada uno de ellos.

Podemos personalizar la configuración de la cuadrícula ajustando los límites superior/inferior y la frecuencia de la cuadrícula. Después de crear esta, el asesor comercial colocará automáticamente órdenes de compra o venta a precios precalculados.

Veamos cómo funciona. Imagine que esperamos que en los próximos 7 días el precio del contrato de futuros que estamos negociando, por ejemplo, VBM 2, fluctúe en el rango de 1600 a 2800 rublos. En este caso, podemos ajustar el comercio con cuadrícula para operar dentro del rango previsto.

En el panel comercial de la cuadrícula, podemos establecer parámetros de estrategia que incluyan:

  • los límites superior e inferior del rango de precios;

  • el número de órdenes que se colocarán dentro del rango de precios especificado;

  • la anchura del paso entre cada orden límite de compra y venta.


Fig. 1.  Colocando una cuadrícula de órdenes para el comercio con cuadrícula

En este caso, a medida que el precio del futuro VBM 2 disminuye hasta los 1600 rublos, el asesor de cuadrícula acumulará posiciones a un precio inferior al de mercado. Cuando los precios comiencen a recuperarse, venderá a un precio más alto que el precio de mercado. Lo que intenta hacer esta estrategia, es capitalizar una reversión en la dirección del precio.


2. Tipos de movimientos de precio de los activos en los mercados financieros que resultan preferibles para un sistema comercial

El punto de entrada en esta estrategia comercial estará ligado al movimiento del mercado del símbolo. Esto significa que podremos distribuir la cuadrícula (de hecho, entrar en una transacción) en cualquier momento. Como ya sabrá, la mayoría de las veces, los mercados se encuentran en movimiento lateral, el llamado flat. Este robot se ha escrito específicamente para tales condiciones de mercado, respetando el paradigma: compramos barato, vendemos caro.

Para el comercio de cuadrícula con órdenes limitadas, el movimiento preferible dentro de este tipo es el flat (tendencia lateral), cuando el precio se mueve en un cierto rango sin una dirección claramente definida. La ruptura de los límites, por norma general, indica el final del flat y el comienzo de una nueva tendencia.

Un flat ancho se forma cuando el precio se comprime entre niveles fuertes de apoyo y resistencia. Al mismo tiempo, ni los toros ni los osos tienen la fuerza para imponerse, iniciando una nueva tendencia. Todas estas definiciones son estrictamente individuales respecto a los símbolos, y se consideran en el contexto de los movimientos de un símbolo de mercado en particular.

Si analizamos este enfoque comercial en términos generales, entonces con respecto a, por ejemplo, el contrato de futuros VBM 2, incluso si hay un movimiento unidireccional (final general) desde el límite inferior de 1600 hasta el superior de 2800, si existen fluctuaciones de precios (retrocesos del movimiento principal) y, como consecuencia de ello, reducciones y recolocación de órdenes límite tanto de compra como de venta, como resultado, después de aproximadamente 1 mes de cotización condicional en la Bolsa de Moscú MOEX, el valor del beneficio total será mayor que las pérdidas totales.

Es precisamente por las fluctuaciones de precio del símbolo comerciado entre los niveles de precios (dentro del rango) que el aumento del beneficio se logra según los resultados de la negociación en este enfoque de cuadrícula para el periodo de tiempo elegido.

Este asesor de cuadrícula usa el mismo valor para los contratos/lotes negociados en cada orden de la cuadrícula, por lo que deberemos planificar nuestra gestión de dinero según este enfoque comercial.

El comercio con rebote desde los límites del flat está diseñado para una consolidación continua. Al usar este método comercial, resulta importante considerar la ausencia de noticias importantes que puedan provocar un movimiento fuerte. Además, por razones de seguridad, los stop loss deberán colocarse fuera del rango.


3. Características y ventajas del comercio con cuadrícula

Una característica del robot comercial presentado es que después de colocar la cuadrícula, no añade nuevas órdenes externas hasta que la cuadrícula actual se cierre con beneficio o pérdidas.

Recomendaciones basadas en el sistema comercial: Elija un instrumento que tenga volúmenes, para que se mueva con claridad. Además, sería bueno excluir los traslados de posición por la noche, para que la profundidad de mercado no esté vacía. Asimismo, deberíamos evitar comerciar fuera de las noticias, así como movimientos unidireccionales sin retrocesos.

Este sistema comercial implica negociar a partir de los niveles, usando para ello promedios (Nayman E. Master-Trading: Secret Materials, p. 134) cuando realizamos el mismo tipo de operación que la anterior (comprar una posición larga o vender una posición corta) a un precio aún mejor.

La principal desventaja de promediar es que no sabemos de antemano qué precio tendrá el mercado en nuestra contra. Pero promediar requiere cada vez invertir garantías adicionales (después de la primera), lo cual aumenta el riesgo de nuestra posición. La mayoría de los tráders novatos cometen un error típico: en busca de grandes beneficios, "sobrecargan" su cuenta, llevando su apalancamiento a valores absolutamente impensables, e incluso a veces apostando todos los fondos disponibles. (Nyman E. Master-Trading: Secret Materials, p. 135)

Una característica de este enfoque comercial es precisamente la capacidad de ajustar los valores de los niveles mínimo y máximo para garantizar el comercio con órdenes límite dentro del rango de precios especificado del símbolo negociado.

Estableciendo stop loss para los niveles superior e inferior, podemos limitar las pérdidas en la cuenta comercial. 

Cuando se activa un stop loss, el terminal comercial informa sobre la ruptura del nivel por parte del precio y su posible movimiento en dirección hacia la ruptura. Como resultado, podría ser necesario volver a analizar los nuevos niveles de precio y establecer los valores en los parámetros externos del asesor experto de comercio con cuadrícula (adjunto).


4. Implementando el comercio con cuadrícula

4.1. Mecanismo del comercio con cuadrícula

Etapas del comercio con cuadrícula:

  1. Estructura inicial: cuando colocamos un robot comercial para operar en el símbolo comercial que hemos seleccionado

  2. Apertura de posición: cuando se activa la primera orden límite de la cuadrícula de órdenes que hemos colocado

  3. Actualización de la cuadrícula: cuando se activan las órdenes posteriores de la cuadrícula (ya sea aumentando la posición de mercado inicial o reduciéndola)

  4. Stop loss, take profit, limitación de las transacciones en el mercado de la posición de mercado actual, salida según el porcentaje de beneficios, a nuestra discreción

  5. Control sobre el comercio por parte de un asesor de cuadrícula: cierre de la sesión comercial con la cuadrícula rentable actual; restablecimiento en los nuevos máximos y mínimos relevantes del símbolo negociado

Esta estrategia de cuadrícula comienza sin una posición inicial en el mercado. La posición inicial se activará cuando el mercado se mueva más allá del precio de la orden pendiente más cercana después del lanzamiento inicial.

Ejemplo

Supongamos que configuramos los parámetros de nuestra estrategia de la forma siguiente para el 01/04/2022:

  • Contrato: futuro VBM 2
  • Límite inferior del precio: 1 600 rublos.
  • Límite superior del precio: 2 800 rublos.
  • Número de elementos en la cuadrícula: 10
  • Modo: equidistante

Supongamos que hemos establecido los parámetros de nuestra estrategia de la siguiente manera:

Las órdenes de compra neutrales de la cuadrícula inicial se colocarán por debajo del precio de mercado actual. Mientras tanto, las órdenes de venta se colocarán por encima del precio de mercado actual. Después de activar la orden de límite más cercana de compra o venta, ocurrirá el proceso que denominaremos activación de la cuadrícula comercial. Además, 9 órdenes estarán involucradas en la negociación.

La distribución de precios será la siguiente por tipos de órdenes:

  • Buy Limit: 1600 rublos, 1733 rublos, 1866 rublos, 1999 rublos  

  • Sell Limit: 2135 rublos, 2268 rublos, 2401 rublos, 2534 rublos, 2667 rublos, 2800 rublos

(empíricamente, para obtener un beneficio óptimo con riesgos moderados, podemos considerar de forma independiente la mejor opción de colocar órdenes en cuadrículas con un paso según el porcentaje del indicador ATR en el periodo diario).

Resumen de todas las órdenes ejecutadas.

Cada transacción consta de una pareja de órdenes de compra y venta correspondientes, el tipo de transacción será FILO (primera en entrar, última en salir). El beneficio se puede calcular según cada pareja de órdenes de compra y venta coincidentes.

El rango desde el límite inferior (LOW_PRICE_BuyLim) hasta el límite superior (HIGH_PRICE_SellLim) se divide por el número indicado de órdenes (Number_of_elements_in_the_grid) con intervalos iguales. Lo más recomendable es ver y seleccionar de forma independiente el rango y el número de órdenes en la cuadrícula (a partir de 3), de forma que la anchura total entre las órdenes sea mayor que el spread del símbolo y los valores de precio de los bordes queden fuera del precio actual.

Además, el límite superior del rango de precios: HIGH_PRICE_SellLim deberá ser mayor que el límite inferior del rango: LOW_PRICE_BuyLim.

4.2. Actualización de la cuadrícula

La cuadrícula se actualiza cada vez que se alcanza uno de los niveles de precios, es decir, al ejecutarse una orden límite. La última orden ejecutada siempre permanece vacía, luego se ejecutan órdenes límite para vender o comprar a los precios establecidos, como se muestra en el ejemplo a continuación.

Por ejemplo, en este caso, después de que la estrategia de cuadrícula sea activada por la primera orden de venta límite, y se haya dado el subsiguiente movimiento al alza del precio del contrato de futuros VBM2, después de que se active la siguiente orden de venta limitada, la parte inferior de la cuadrícula (el número de órdenes Buy Limit) se incrementará en 1 orden BuyLimit, colocada 1 paso más alto (más cerca del precio) de la orden BuyLimit anterior de la cuadrícula.

Es decir, después de que se active el comercio con cuadrícula, el precio subirá y se activará la primera orden límite de venta después de la activación de la cuadrícula. Los precios límite para cada nivel en la cuadrícula serán los siguientes:

Precio en rublos. Dirección y tipo de orden/posición
2 534. Venta con orden límite
2 401. Venta con orden límite
2201,5. Posición de mercado con un volumen igual a las 2 primeras órdenes límite de venta
2 132. Compra con orden límite
1 999. Compra con orden límite
1 866. Compra con orden límite
1 733. Compra con orden límite
1 600. Compra con orden límite

Lo cual se muestra en la siguiente figura:


Fig. 2. Proceso de actualización de la cuadrícula de órdenes: después de su activación y la activación de las próximas órdenes límite

Así, continúa el proceso de actualización de las órdenes de la cuadrícula.

Opciones de la cuadrícula:

//+------------------------------------------------------------------+
//|                          EXTERNAL GRID VARIABLES
//+------------------------------------------------------------------+
input int Volume = 1;                          //Contract/lot volume
input double HIGH_PRICE_SellLim = 2800.00;     //HIGH_PRICE_SellLim (the upper price of the last SellLim grid order)
input double LOW_PRICE_BuyLim  = 1600.00;      //LOW_PRICE_BuyLim   (the lower price of the last BuyLim grid order) for BuyLim
input double HIGH_PRICE_SL  = 100.00;          // HIGH_PRICE_SL: SL in points from HIGH_PRICE_SellLim (the upper stop loss price) for SellLim
input double LOW_PRICE_SL = 100.00;            // LOW_PRICE_SL:  SL in points from LOW_PRICE_BuyLim (lower stop loss price)  for BuyLim
input int Pending_order_period  = 12;          // Pending_order_period: limit order setting time in months
input int Number_of_elements_in_the_grid = 10; // Number of elements in the grid (number of limit orders)
input double TakeProfit  = 0;                  // TakeProfit from the setting price in order pips
input double Profit_percentage = 0;            // Profit_percentage - grid closure % in profit
                                               // works if > "0"
input  bool Continued_trading = false;         // Continued_trading - whether to continue trading after exiting by the grid closure % with profit   

input int    Time_to_restrict_trade  = 0;      // Time_to_restrict_trade - setting the expiration time (in days) for a position with profit
                                               // (exiting the market upon the period end in days)                                              

input int Magic       = 10;                    // Magic Number

Los nombres de las variables externas y su decodificación se implementan de la forma más detallada posible, por lo que no necesitan comentarios innecesarios.

Lo que también resulta importante es establecer los valores de las variables.

HIGH_PRICE_SellLim 

no inferior al límite superior y

LOW_PRICE_BuyLim  

no inferior al límite inferior de los valores determinados (establecidos) por la Bolsa de Moscú: 

https://www.moex.com/en/contract.aspx?code=VTBR-6.22

Esta y otra información se muestra en los parámetros del instrumento en la Bolsa de Moscú (Fig. 3)


Fig. 3. Parámetros del instrumento: contrato de futuros de acciones ordinarias de VTB Bank (PJSC) VTBR-6.22

El enfoque comercial se muestra en la fig. 4.2.

Como resultado, después de iniciar el asesor comercial de cuadrícula presentado en este artículo, deberíamos ver en la pantalla del terminal una información similar a la que se muestra (en la figura) sobre el robot comercial en el símbolo que hemos elegido. 4.1 y 4.2:


Fig. 4.1. Asesor de cuadrícula en un contrato de futuros para acciones ordinarias de VTB Bank (PJSC) VTBR-6.22 


Con valores distintos de cero en los parámetros de stop loss y take profit, además de las órdenes límite de compra y venta colocadas, se mostrarán los niveles de stop loss y take profit en el terminal comercial, de la forma correspondiente:


Fig. 4.2. Comercio con un asesor de cuadrícula en un contrato de futuros para acciones ordinarias de VTB Bank (PJSC) VTBR-6.22 con valores de stop loss y take profit distintos de cero

Como resultado, tenemos una cuadrícula de órdenes limitadas que se reemplazan en las siguientes activaciones dentro de los rangos de precio mínimo y máximo.

Y mientras el precio del símbolo negociado está dentro del rango de precios, el asesor experto de la cuadrícula acumula ganancias en la cuenta comercial. Incluso teniendo en cuenta el obvio inconveniente de este tipo de comercio con cuadrícula (a saber, la aparición de un fuerte movimiento de precios sin rebote en cualquier dirección, en lugar del movimiento de precios esperado en un rango), podemos decir lo siguiente:

  • Primero, tales movimientos no son "frecuentes".
  • En segundo lugar, para ese momento de la negociación (hasta que el precio abandone el rango y el número de órdenes seleccionados correctamente), ya habrá suficientes beneficios en la cuenta para compensar la pérdida actual.
  • En tercer lugar, mientras el precio fluctúe (se mueva) entre los valores máximo y mínimo del rango de precios, realizando transacciones tanto de compra como de venta, la cuenta comercial seguirá generando beneficios.

Conclusión

Este asesor experto de comercio con cuadrícula, así como el enfoque de comercio con cuadrícula, requiere controlar la presencia del precio dentro del rango especificado. Cuando el precio se acerque a uno de sus límites, podremos detener el comercio de cuadrícula con órdenes límite y comenzarlo en un nuevo rango con nuevos volúmenes.

La cuadrícula se puede crear para aprovechar las tendencias (esta opción se presentará en la siguiente parte del artículo) o los rangos presentados en este artículo. El enfoque de comercio con cuadrícula considera el comercio con la ayuda de un asesor con órdenes límite y su correspondiente reajuste, es decir, mientras el precio continúa fluctuando lateralmente, ejecutando órdenes de compra y venta. 

Los riesgos derivados del movimiento de precios unidireccional se controlan estableciendo niveles de stop loss para órdenes límite. Como resultado, el enfoque del comercio con cuadrícula presentado nos permite protegernos contra una reducción o crecimiento repentinos en el mercado, después de lo cual, por regla general, se da un movimiento correctivo del precio. Es decir, si elegimos correctamente los valores para el rango de precios, los tamaños de los contratos, el número de órdenes de la cuadrícula, y los niveles de take profit y stop loss, el asesor nos permitirá evitar reducciones, al tiempo que eliminaremos la necesidad de monitorear constantemente el mercado.

Nota:

La estrategia de cuadrícula discutida aquí no debe considerarse como un consejo financiero o de inversión. Si usa el comercio con cuadrícula, lo hará a su discreción y bajo su propio riesgo, lo cual implicará un control y un enfoque razonable del comercio en función de sus propias capacidades financieras.

Lista de literatura recomendada:

Nayman, E., Master-Trading: Secret Materials. Moscow, Alpina Publisher (in Russian), 2002, - 320 pgs.

Traducción del ruso hecha por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/ru/articles/10672

Archivos adjuntos |
GRID_TRADING_v.01.mq5 (112.73 KB)
DoEasy. Elementos de control (Parte 8): Objetos básicos WinForms por categorías, controles "GroupBox" y "CheckBox DoEasy. Elementos de control (Parte 8): Objetos básicos WinForms por categorías, controles "GroupBox" y "CheckBox
En este artículo, veremos la creación de los objetos WinForms "GroupBox" y "CheckBox", y crearemos los objetos básicos para las categorías de los objetos WinForms. Todos los objetos que hemos creado hasta ahora son estáticos, es decir, no tienen ninguna funcionalidad para interactuar con el ratón.
Redes neuronales: así de sencillo (Parte 17): Reducción de la dimensionalidad Redes neuronales: así de sencillo (Parte 17): Reducción de la dimensionalidad
Seguimos analizando modelos de inteligencia artificial, y en particular, los algoritmos de aprendizaje no supervisado. Ya nos hemos encontrado con uno de los algoritmos de clusterización. Y en este artículo queremos compartir con ustedes una posible solución a los problemas de la reducción de la dimensionalidad.
Experimentos con redes neuronales (Parte 1): Recordando la geometría Experimentos con redes neuronales (Parte 1): Recordando la geometría
Las redes neuronales lo son todo. En este artículo, usaremos la experimentación y enfoques no estándar para desarrollar un sistema comercial rentable y comprobaremos si las redes neuronales pueden ser de alguna ayuda para los comerciantes.
Aprendizaje automático y data science (Parte 04): Predicción de una caída bursátil Aprendizaje automático y data science (Parte 04): Predicción de una caída bursátil
En este artículo, intentaremos usar nuestro modelo logístico para predecir una caída del mercado de valores según las principales acciones de la economía estadounidense: NETFLIX y APPLE. Analizaremos estas acciones, y también usaremos la información sobre las anteriores caídas del mercado en 2019 y 2020. Veamos cómo funcionará nuestro modelo en las poco favorables condiciones actuales.