Trading usando canales de Donchian

Alexander Fedosov | 15 mayo, 2017


Contenido

Introducción

El canal de Donchian es un indicador técnico desarrollado a principios de los años setenta. En aquel entonces, se llamaba el Canal móvil, pero posteriormente fue renombrado en homenaje de su creador, Richard Donchian. Este indicador determina el grado de volatilidad del mercado a base de un diapasón de precios especificado, aplicando los mínimos y máximos recientes. Visualmente, el canal de Donchian representa dos líneas dentro de las cuales ocurren las fluctuaciones de precio. Las señales de venta o de compra son las salidas del precio fuera de la banda inferior o superior del canal, respectivamente. Al construir el canal, el autor recomendaba utilizar el diapasón de precio igual a 20 (número aproximado de días laborales al mes) y el período de tiempo D1.

Principio del trabajo y aplicación del canal de Donchian

Como decidí no hacer hoyos donde hay tuza, no me puse a hacer una implementación más de este indicador, sino cogí como base su modificación que caracterizaba perfectamente el estilo del trading según este sistema, Donchian Channels System. En la figura 1, las velas de color rosa y azul muestran perfectamente las zonas donde se rompen los límites del canal, es decir, los lugares donde ocurre la entrada en el mercado.


Fig. 1. Principio de funcionamiento y puntos de entrada en el mercado según el canal de Donchian.

Preste atención en las zonas rojas marcadas en el gráfico. Pues, es la principal desventaja del canal de Donchian, así llamadas las rupturas falsas, después de las cuales el precio vuelve a retroceder a su diapasón. Por esa razón, sería irreflexivo entrar en el mercado usando sólo el canal de Donchian, sin alguna confirmación adicional. Para comprender mejor la esencia del indicador, vamos a analizar los parámetros e implementación de la modificación en cuestión:

//+----------------------------------------------+
//|  Parámetros de entrada del indicador         |
//+----------------------------------------------+
input uint           DonchianPeriod=20;            // Período de promediación
input Applied_Extrem Extremes=HIGH_LOW;            // Tipo de extremos
input uint           Shift=2;                      // Desplazamiento horizontal en barras 
//+----------------------------------------------+
  • Período de promediación — diapasón de precio utilizado.
  • Tipos de extremos — tipos de los valores de precios que van a utilizarse en los cálculos. Por defecto, se usa la definición clásica para los valores de los mínimos y máximos de las velas.
  • Desplazamiento horizontal en barras — a cuantas barras se desplazará el canal.

Aquí, merece la pena detenerse en los tipos de los extremos, ya que en la modificación elegida se puede usar no sólo los valores High y Low. A continuación, se muestran posibles variantes y la implementación:

//+----------------------------------------------+
//|  Declaración de la enumeración               |
//+----------------------------------------------+
enum Applied_Extrem //Tipo de los extremos
  {
   HIGH_LOW,
   HIGH_LOW_OPEN,
   HIGH_LOW_CLOSE,
   OPEN_HIGH_LOW,
   CLOSE_HIGH_LOW
  };
  • HIGH_LOW — aplicación clásica High y Low de las velas.
  • HIGH_LOW_OPEN — en esta interpretación, para construir la banda superior del canal, se utiliza el valor medio entre el máximo del precio de apertura y los máximos de las velas en el diapasón de precio establecido. Los mínimos se utilizan para la banda inferior.
  • HIGH_LOW_CLOSE — para construir la banda superior, se utiliza el valor medio entre el máximo del precio de cierre y los  máximos de las velas  en el diapasón de precio establecido. Los mínimos se utilizan para la banda inferior.
  • OPEN_HIGH_LOW — para construir la banda superior, se usa el máximo de los precios de apertura en el diapasón determinado, para la banda inferior, el mínimo.
  • CLOSE_HIGH_LOW — para construir la banda superior, se usa el máximo de los precios de cierre en el diapasón determinado, para la banda inferior, el mínimo.

El listado de la implementación de diferentes tipos de extremos se muestra a continuación:

for(bar=first; bar<rates_total && !IsStopped(); bar++)
     {
      switch(Extremes)
        {
         case HIGH_LOW:
            SsMax=high[ArrayMaximum(high,bar,DonchianPeriod)];
            SsMin=low[ArrayMinimum(low,bar,DonchianPeriod)];
            break;

         case HIGH_LOW_OPEN:
            SsMax=(open[ArrayMaximum(open,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2;
            SsMin=(open[ArrayMinimum(open,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2;
            break;

         case HIGH_LOW_CLOSE:
            SsMax=(close[ArrayMaximum(close,bar,DonchianPeriod)]+high[ArrayMaximum(high,bar,DonchianPeriod)])/2;
            SsMin=(close[ArrayMinimum(close,bar,DonchianPeriod)]+low[ArrayMinimum(low,bar,DonchianPeriod)])/2;
            break;

         case OPEN_HIGH_LOW:
            SsMax=open[ArrayMaximum(open,bar,DonchianPeriod)];
            SsMin=open[ArrayMinimum(open,bar,DonchianPeriod)];
            break;

         case CLOSE_HIGH_LOW:
            SsMax=close[ArrayMaximum(close,bar,DonchianPeriod)];
            SsMin=close[ArrayMinimum(close,bar,DonchianPeriod)];
            break;
        }

Desarrollo del sistema comercial

Durante el desarrollo de la estrategia, es necesario tomar en cuenta no sólo las rupturas faltas, sino también el hecho de que el canal de Donchian se utiliza las más de las veces en las estrategias tendenciales. Puesto que las señales para entran en el mercado son rupturas de los límites del canal, para excluir el problema de las salidas falsas fuera de los bandas, es necesario escoger por lo menos un indicador de tendencia que confirme la señal. Además de eso, se debe aclarar las condiciones exactas de la entrada, seguimiento de la posición abierta y la salida, Gestión de Capital. Por tanto, vamos a formular las condiciones a establecer.

1. Señal de confirmación

El objetivo de este artículo es no sólo mostrar los ejemplos de la aplicación de los canales de Donchian en la negociación, sino también hacer un pequeño estudio sobre la «vitalidad» de este sistema en los mercados modernos. Por eso, vamos a escoger algunos indicadores de confirmación. Cada uno de ellos va a trabajar en cooperación con el canal de Donchian. De esta manera, tendremos varias estrategias comerciales diferentes, basadas en la estrategia que estamos analizando. Para el trabajo en conjunto con el canal, he seleccionado tres señales de confirmación en forma de los siguientes indicadores:

  • Average Directional Movement Index(ADX)  — índice del movimiento direccional medio. El trabajo en cooperación con este indicador permite evaluar el estado y la fuerza de la tendencia actual y realizar la entrada durante la ruptura de la banda del canal.
  • Moving Average Convergence/Divergence(MACD) — oscilador de Convergencia/Divergencia de Medias Móviles. En este sistema, MACD va a monitorear la tendencia actual. Después de la ruptura de los límites del canal, vamos a comprobar si corresponde a la dirección del mercado o si se trata de un salto ocasional del precio (ruptura falsa).
  • Como la tercera señal de confirmación, he decidido escoger dos a la vez: Average Speed (velocidad media del cambio del precio en puntos/min.) y X4Period_RSI_Arrows (indicador semafórico de cuatro RSI con diferentes timeframe).

2. Formalización de sistemas comerciales

Primero, hay que seleccionar los parámetros generales para las tres futuras estrategias comerciales: los ajustamos de tal manera que el diapasón de la simulación sea el máximo de lo posible. Por eso, formulamos los parámetros que vamos a controlar durante la simulación:

  • Timeframe. La posibilidad de seleccionar el timeframe es necesaria para testear en diferentes períodos de tiempo, que pueden caracterizar diferentes particularidades y fases del mercado, de los movimientos débiles y correcciones a las tendencias largas, que se ven claramente en los períodos mayores.
  • Gestión de Capital Varias opciones de los tamaños de la posición, en función de los resultados del trading, permitirán comprender si es eficaz reinvertir dinero o es más conveniente tradear con lotes constantes.
  • Seguimiento de posición abierta. Varias maneras de trabajo con una posición ya abierta permitirá entender qué porcentaje del movimiento actual favorable podemos tomar como beneficio.
  • Parámetros de indicadores. La simulación de las estrategias seleccionadas en diferentes modos dará la respuesta a la pregunta qué ajustes harán que nuestro sistema sea eficaz, o al revés, no rentable.

Luego, es necesario formular las condiciones de la entrada para las tres estrategias comerciales:

#1. Canal de Donchian + ADX.

Condiciones de este sistema:

  • Se rompe la banda superior o inferior del canal de Donchian.
  • La línea principal de la fuerza de la tendencia ADX debe estar por encima del nivel predefinido ADX Level.
  • Si la ruptura es hacia arriba, DI+ debe estar encima de DI-. Por consiguiente, si la ruptura es hacia abajo, DI- debe estar por encima de DI+.

Fig. 2. Condiciones de entrada en el mercado por parte de la estrategia Canal Donchian+ADX

#2. Canal de Donchian + MACD.  

Condiciones de este sistema:

  • Se rompe la banda superior o inferior del canal de Donchian.
  • Al pasar eso, el valor del histograma es superior a cero y a la línea de señal durante la compra.
  • El valor del histograma es inferior a cero y a la línea de señal durante la venta.

Fig. 3. Condiciones de entrada en el mercado por parte de la estrategia Canal Donchian+MACD

#3. Canal de Donchian + (Average Speed и X4Period_RSI_Arrows).

Las condiciones de este sistema son las siguientes:

  • Se rompe la banda superior o inferior del canal de Donchian.
  • El valor Average Speed debe ser más de 1, y RSI de semáforo debe mostrar por lo menos 2 puntos sobre la vela durante la venta, y en caso de la compra, debajo de la vela.

Fig. 4. Condiciones de entrada en el mercado por parte de la estrategia Canal Donchian+(Average Speed y X4Period_RSI_Arrows)

Implementación del sistema comercial

Para la comodidad de la simulación y optimización, se ha tomado la decisión de implementar todos estos tipos de las estrategias en el mismo Asesor Experto. Por eso, en los parámetros se ofrece la selección entre cuatro estrategias:

//+------------------------------------------------------------------+
//|  Declaración de las enumeraciones de los tipos de estrategias    |
//+------------------------------------------------------------------+
enum Strategy
  {
   Donchian=0,
   Donchian_ADX,
   Donchian_MACD,
   Donchian_AvrSpeed_RSI
  };
  • Donchian — estrategia de ruptura con aplicación sólo de los canales de Donchian.
  • Donchian_ADX — estrategia con el filtro como fuerza de la tendencia del indicador ADX.
  • Donchian_MACD — estrategia con el filtro como señales del oscilador MACD.
  • Donchian_AvrSpeed_RSI — estrategia con el filtro como señales de la velocidad del cambio del precio y RSI semáforico de timeframes diferentes.

A continuación, declaramos los tipos de los extremos de los canales de Donchian que serán simulados:

//+------------------------------------------------------------------+
//| Declaración de las enumeraciones de los tipos de extremos        |
//+------------------------------------------------------------------+
enum Applied_Extrem
  {
   HIGH_LOW,
   HIGH_LOW_OPEN,
   HIGH_LOW_CLOSE,
   OPEN_HIGH_LOW,
   CLOSE_HIGH_LOW
  };

Además de eso, se debe tener en cuenta que se podrá usar tres sistemas de la Gestión de Capital:

//+------------------------------------------------------------------+
//|  Enumeración para versiones del cálculo del lote                 |
//+------------------------------------------------------------------+
enum MarginMode
  {
   FREEMARGIN=0,     //MM Free Margin
   BALANCE,          //MM Balance
   LOT               //Constant Lot
  };
  • FREEMARGIN — cálculo del lote base desde el margen libre.
  • BALANCE — cálculo desde el balance actual en la cuenta.
  • LOT — sin cambios. Se usa el lote base establecido manualmente.

Como sistema de seguimiento de posiciones abiertas a base del EA Trailing Stop universal, fue desarrollada la clase CTrailing ubicada en el archivo Trailing.mqh.

Abajo se muestran los métodos de rastreo de posiciones, así como los parámetros de entrada:

enum   TrallMethod
  {
   b=1,     //Según los extremos de las velas
   c=2,     //Según los fractales
   d=3,     //Según el indicador ATR
   e=4,     //Según el indicador Parabolic
   f=5,     //Según el indicador МА
   g=6,     //% del beneficio
   i=7,     //Según los puntos
  };


//--- Parámetros del Trailing Stop

input bool                 UseTrailing=true;                            //Uso del Trailing Stop
input bool                 VirtualTrailingStop=false;                   //Trailing Stop virtual
input TrallMethod          parameters_trailing=7;                       //Métodos del Trailing Stop

input ENUM_TIMEFRAMES      TF_Tralling=PERIOD_CURRENT;                  //Timeframe de los indicadores

input int                  StepTrall=50;                                //Paso de desplazamiento de Stop Loss (en puntos)
input int                  StartTrall=100;                              //Ganancia mínima del Trailing Stop (en puntos)

input int                  period_ATR=14;                               //Período ATR (método 3)

input double               step_PSAR=0.02;                              //Paso PSAR (método 4)
input double               maximum_PSAR=0.2;                            //Máximo PSAR (método 4)

input int                  ma_period=34;                                //Período МА (método 5)
input ENUM_MA_METHOD       ma_method=MODE_SMA;                          //Método del promedio  (método 5)
input ENUM_APPLIED_PRICE   applied_price=PRICE_CLOSE;                   //Tipo de precio  (método 5)

input double               PercentProfit=50;                            //Porcentaje del beneficio (método 6)

Además de eso, para facilitar la visualización de los parámetros seleccionados durante la prueba demo y en el modo visual del Probador, he añadido el panel informativo usando la serie de artículos Interfaces gráficas. Este panel contiene los tipos principales de los ajustes seleccionados:

  • tipo de la estrategia;
  • tipo del Trailing Stop;
  • tipo de la Gestión de Capital;
  • Take Profit;
  • Stop Loss.

Para la visualización, ha sido desarrollada la clase CDonchianUI que se ubica en el archivo DonchianUI.mqh. Si desea, puede añadir sus propios valores.La representación visual del panel se muestra en la figura 5.

Fig. 5. Panel informativo de modos principales de Donchian Expert.

Simulación

Antes de la simulación, se debe definir sus condiciones. Las principales de ellas están resumidas en la tabla de abajo:

Parámetro Valor
Intervalo de simulación 01.03.2016 — 01.03.2017
Mercado EURUSD/GOLD-6.17
Modo de trading Cada tick a base de ticks reales
Depósito inicial 1000 USD
Apalancamiento  1:500
Servidor MetaQuotes

Puesto que el EA está presentado en el formato 4 en 1, no tiene sentido hablar de toda la riqueza del repaso de las posibles combinaciones de los ajustes, eso lo dejaremos a los lectores. No obstante, destacaremos los bloques principales de los ajustes los cuales vamos a combinar en la simulación, mientras que los parámetros privados de los bloques los vamos a optimizar. Para la mayor clareza, en la tabla de abajo se muestran los modos del EA que van a cambiarse durante la simulación:

Bloque del Asesor Experto Modo de simulación
Gestión de Capital Lote constante/Desde balance
Timeframe en ejecución M30 - D1
Seguimiento de posición abierta Trailing Stop/Sin seguimiento
Tipo de estrategia Donchian/Donchian+ADX/Donchian+MACD/Donchian+Avr.Speed+RSI

Voy a explicar por qué en la Gestión de Capital están elegidos sólo 2 modos: durante la simulación, la carga sobre el depósito utilizado será sólo de parte de nuestro EA y en el mercado habrá sólo una posición, por eso, el modo Desde el balance y Desde el margen libre será prácticamente lo mismo.

1. Estrategia comercial Canal de Donchian.

Primero, vamos a probar la estrategia de sólo los canales de Donchian.


Fig. 6. Estrategia comercial Donchian en EURUSD.

Durante la simulación y optimización de la estrategia en EURUSD, han sido sacadas las siguientes conclusiones:

  • En el diapasón definido, los mejores resultados han sido en М30-Н1.
  • Al mismo tiempo, el período de trabajo del indicador ha sido 10-12.
  • Desde el punto de vista del precio aplicado, el modo CLOSE_HIGH_LOW ha sido el mejor en el indicador.
  • El Trailing Stop se ha mostrado poco eficaz en comparación con el modo sin él.
  • La conclusión general es la siguiente: la estrategia basada sólo en el trabajo del canal de Donchian se ha mostrado como una estrategia tendencial clásica que tiene series de transacciones rentables durante los movimientos fuertes del mercado.
//+------------------------------------------------------------------+
//| Parámetros de entrada del EA                                     |
//+------------------------------------------------------------------+
sinput string              Inp_EaComment="Donchian Expert";             //comentario de EA
input double               Inp_Lot=0.01;                                //Lote base
input MarginMode           Inp_MMode=LOT;                               //Gestión de Capital
input int                  Inp_MagicNum=555;                            //Número mágico
input int                  Inp_StopLoss=400;                            //Stop Loss (en puntos)
input int                  Inp_TakeProfit=600;                          //Take Profit (en puntos)
input int                  Inp_Deviation = 20;                          //Deslizamiento
input ENUM_TIMEFRAMES      InpInd_Timeframe=PERIOD_M30;                 //Timeframe en ejecución
input bool                 InfoPanel=false;                             //Visualización del panel informativo
//--- Parámetros del indicador Donchian Channel System

input uint                 DonchianPeriod=10;                           //Período del canal
input Applied_Extrem       Extremes=CLOSE_HIGH_LOW;                     //Tipo de extremos
//--- Selección de la estrategia aplicada

input Strategy             CurStrategy=Donchian;                        //Estrategia seleccionada

//--- Parámetros del Trailing Stop

input bool                 UseTrailing=false;                           //Uso del Trailing Stop


En comparación con el par de divisas, durante la simulación en el futuro GOLD-6.17, con el mismo período y en los mismos timeframes que EURUSD - M30-H1, el resultado ha sido mejor. 


Fig. 7. Estrategia comercial Donchian en GOLD-6.17.

//+------------------------------------------------------------------+
//| Parámetros de entrada del EA                                     |
//+------------------------------------------------------------------+
sinput string              Inp_EaComment="Donchian Expert";             //comentario de EA
input double               Inp_Lot=0.01;                                //Lote base
input MarginMode           Inp_MMode=LOT;                               //Gestión de Capital
input int                  Inp_MagicNum=555;                            //Número mágico
input int                  Inp_StopLoss=400;                            //Stop Loss (en puntos)
input int                  Inp_TakeProfit=600;                          //Take Profit (en puntos)
input int                  Inp_Deviation = 20;                          //Deslizamiento
input ENUM_TIMEFRAMES      InpInd_Timeframe=PERIOD_M30;                 //Timeframe en ejecución
input bool                 InfoPanel=false;                             //Visualización del panel informativo
//--- Parámetros del indicador Donchian Channel System

input uint                 DonchianPeriod=12;                           //Período del canal
input Applied_Extrem       Extremes=CLOSE_HIGH_LOW;                     //Tipo de extremos
//--- Selección de la estrategia aplicada

input Strategy             CurStrategy=Donchian;                        //Estrategia seleccionada
....

//--- Parámetros del Trailing Stop

input bool                 UseTrailing=true;                            //Uso del Trailing Stop
input bool                 VirtualTrailingStop=false;                   //Trailing Stop virtual
input TrallMethod          parameters_trailing=7;                       //Métodos del Trailing Stop

input ENUM_TIMEFRAMES      TF_Tralling=PERIOD_CURRENT;                  //Timeframe de los indicadores

input int                  StepTrall=50;                                //Paso del desplazamiento de Stop Loss (en puntos)
input int                  StartTrall=100;                              //Ganancia mínima del Trailing Stop (en puntos)

2. Estrategia comercial Canal de Donchian y ADX.

Según los resultados de la simulación de la estrategia con el filtro ADX de las señales del canal de Donchian, han sido hechas las siguientes conclusiones:

  • El número de transacciones se redujo, lo que era de esperar.
  • El mejor timeframe de trabajo seguía siendo М30.
  • El porcentaje de transacciones rentables subió.
  • El período eficaz del canal fue 18, mientras que el período ADX era 10.
  • El precio más eficaz aplicado en el canal de Donchian sigue siendo CLOSE_HIGH_LOW.


Fig.8. Estrategia comercial Donchian + ADX en EURUSD.

//+------------------------------------------------------------------+
//| Parámetros de entrada del EA                                     |
//+------------------------------------------------------------------+
sinput string              Inp_EaComment="Donchian Expert";             //comentario de EA
input double               Inp_Lot=0.01;                                //Lote base
input MarginMode           Inp_MMode=LOT;                               //Gestión de Capital
input int                  Inp_MagicNum=555;                            //Número mágico
input int                  Inp_StopLoss=400;                            //Stop Loss (en puntos)
input int                  Inp_TakeProfit=600;                          //Take Profit (en puntos)
input int                  Inp_Deviation = 20;                          //Deslizamiento
input ENUM_TIMEFRAMES      InpInd_Timeframe=PERIOD_M30;                 //Timeframe en ejecución
input bool                 InfoPanel=false;                             //Visualización del panel informativo
//--- Parámetros del indicador Donchian Channel System

input uint                 DonchianPeriod=18;                           //Período del canal
input Applied_Extrem       Extremes=CLOSE_HIGH_LOW;                     //Tipo de extremos
//--- Selección de la estrategia aplicada

input Strategy             CurStrategy=Donchian_ADX;                    //Estrategia seleccionada
//--- Parámetros del indicador ADX

input int                  ADX_period=10;
input double               ADX_level=20;

Los resultados en los futuros han mostrado que en el timeframe H1 con el período del canal de Donchian 18 y ADX 8, los resultados parecen a los de la estrategia anterior. En este caso, otra vez los mejores resultados han sido mostrados al usar el canal en los precios de cierre.


Fig. 9. Estrategia comercial Donchian + ADX en GOLD-6.17.

//+------------------------------------------------------------------+
//| Parámetros de entrada del EA                                     |
//+------------------------------------------------------------------+
sinput string              Inp_EaComment="Donchian Expert";             //comentario de EA
input double               Inp_Lot=0.01;                                //Lote base
input MarginMode           Inp_MMode=LOT;                               //Gestión de Capital
input int                  Inp_MagicNum=555;                            //Número mágico
input int                  Inp_StopLoss=400;                            //Stop Loss (en puntos)
input int                  Inp_TakeProfit=600;                          //Take Profit (en puntos)
input int                  Inp_Deviation = 20;                          //Deslizamiento
input ENUM_TIMEFRAMES      InpInd_Timeframe=PERIOD_H1;                  //Timeframe en ejecución
input bool                 InfoPanel=false;                             //Visualización del panel informativo
//--- Parámetros del indicador Donchian Channel System

input uint                 DonchianPeriod=18;                           //Período del canal
input Applied_Extrem       Extremes=CLOSE_HIGH_LOW;                     //Tipo de extremos
//--- Selección de la estrategia aplicada

input Strategy             CurStrategy=Donchian_ADX;                    //Estrategia seleccionada
//--- Parámetros del indicador ADX

input int                  ADX_period=8;
input double               ADX_level=20;

//--- Parámetros del Trailing Stop

input bool                 UseTrailing=true;                            //Uso del Trailing Stop
input bool                 VirtualTrailingStop=false;                   //Trailing Stop virtual
input TrallMethod          parameters_trailing=7;                       //Métodos del Trailing Stop

input ENUM_TIMEFRAMES      TF_Tralling=PERIOD_CURRENT;                  //Timeframe de los indicadores

input int                  StepTrall=50;                                //Paso de desplazamiento de Stop Loss (en puntos)
input int                  StartTrall=100;                              //Ganancia mínima del Trailing Stop (en puntos)

3. Estrategia comercial Canal de Donchian y MACD.

Según los resultados de la simulación de la estrategia con MACD como filtro de las señales del canal de Donchian, han sido hechas las siguientes conclusiones:

  • Los mejores resultados han sido mostrados de nuevo en el timeframe H1.
  • El cambio de los parámetros del indicador MACD no ha introducido ningunos alteraciones importantes.


Fig. 10. Estrategia comercial Donchian + MACD en EURUSD.

//+------------------------------------------------------------------+
//| Parámetros de entrada del EA                                     |
//+------------------------------------------------------------------+
sinput string              Inp_EaComment="Donchian Expert";             //comentario de EA
input double               Inp_Lot=0.01;                                //Lote base
input MarginMode           Inp_MMode=LOT;                               //Gestión de Capital
input int                  Inp_MagicNum=555;                            //Número mágico
input int                  Inp_StopLoss=400;                            //Stop Loss (en puntos)
input int                  Inp_TakeProfit=600;                          //Take Profit (en puntos)
input int                  Inp_Deviation = 20;                          //Deslizamiento
input ENUM_TIMEFRAMES      InpInd_Timeframe=PERIOD_H1;                  //Timeframe en ejecución
input bool                 InfoPanel=true;                              //Visualización del panel informativo
//--- Parámetros del indicador Donchian Channel System

input uint                 DonchianPeriod=16;                           //Período del canal
input Applied_Extrem       Extremes=CLOSE_HIGH_LOW;                     //Tipo de extremos
//--- Selección de la estrategia aplicada

input Strategy             CurStrategy=Donchian_MACD;                   //Estrategia seleccionada

//--- Parámetros del indicador MACD

input int                  InpFastEMA=12;                               //Fast EMA period
input int                  InpSlowEMA=26;                               //Slow EMA period
input int                  InpSignalSMA=9;                              //Signal SMA period
input ENUM_APPLIED_PRICE   InpAppliedPrice=PRICE_CLOSE;                 //Applied price

Al testear los futuros, como en la estrategia anterior, el mejor período del canal de Donchian ha sido 10. La opción con el uso del Trailing Stop ha resultado más eficaz que sin él.


Fig. 11. Estrategia comercial Donchian + MACD en GOLD-6.17.

//+------------------------------------------------------------------+
//| Parámetros de entrada del EA                                     |
//+------------------------------------------------------------------+
sinput string              Inp_EaComment="Donchian Expert";             //comentario de EA
input double               Inp_Lot=0.01;                                //Lote base
input MarginMode           Inp_MMode=LOT;                               //Gestión de Capital
input int                  Inp_MagicNum=555;                            //Número mágico
input int                  Inp_StopLoss=400;                            //Stop Loss (en puntos)
input int                  Inp_TakeProfit=600;                          //Take Profit (en puntos)
input int                  Inp_Deviation = 20;                          //Deslizamiento
input ENUM_TIMEFRAMES      InpInd_Timeframe=PERIOD_M30;                 //Timeframe en ejecución
input bool                 InfoPanel=true;                              //Visualización del panel informativo
//--- Parámetros del indicador Donchian Channel System

input uint                 DonchianPeriod=10;                           //Período del canal
input Applied_Extrem       Extremes=CLOSE_HIGH_LOW;                     //Tipo de extremos
//--- Selección de la estrategia aplicada

input Strategy             CurStrategy=Donchian_MACD;                   //Estrategia seleccionada

//--- Parámetros del indicador MACD

input int                  InpFastEMA=12;                               //Fast EMA period
input int                  InpSlowEMA=26;                               //Slow EMA period
input int                  InpSignalSMA=9;                              //Signal SMA period
input ENUM_APPLIED_PRICE   InpAppliedPrice=PRICE_CLOSE;                 //Applied price

Antes de probar la siguiente estrategia con filtro combinado, merece la pena hacer el resumen intermedio, dado que en tres estrategias consideradas han sido usados los indicadores clásicos. La verdad es que una gran diferencia entre las estrategias simuladas en EURUSD no ha sido revelada, pero los filtros en forma de ADX y MACD han reducido el número de entradas en el mercado y han aumentado el resultado final. Si consideramos las pruebas en el futuro, entonces tomando en cuenta la específica de este mercado y la volatilidad que se diferencia bastante en comparación con los pares de divisas, la filtración de las señales del canal de Donchian no da cambios. Pero el resultado final aquí ha sido mucho mejor que en el par de divisas.

4. Estrategia comercial Canal de Donchian y Average Speed+X4Period_RSI_Arrows.

Después de optimizar la estrategia de la filtración del canal de Donchian a través del filtro combinado, hemos confirmado todas las conclusiones hechas anteriormente sobre su uso en diferentes condiciones comerciales. Debido a una baja volatilidad de los futuros, la selectividad de esta estrategia ha resultado ser muy alta.


Fig. 12. Estrategia coemrcial Donchian + Average Speed+X4Period_RSI_Arrows en EURUSD.

//+------------------------------------------------------------------+
//| Parámetros de entrada del EA                                     |
//+------------------------------------------------------------------+
sinput string              Inp_EaComment="Donchian Expert";             //comentario de EA
input double               Inp_Lot=0.01;                                //Lote base
input MarginMode           Inp_MMode=LOT;                               //Gestión de Capital
input int                  Inp_MagicNum=555;                            //Número mágico
input int                  Inp_StopLoss=400;                            //Stop Loss (en puntos)
input int                  Inp_TakeProfit=600;                          //Take Profit (en puntos)
input int                  Inp_Deviation = 20;                          //Deslizamiento
input ENUM_TIMEFRAMES      InpInd_Timeframe=PERIOD_H1;                  //Timeframe en ejecución
input bool                 InfoPanel=true;                              //Visualización del panel informativo
//--- Parámetros del indicador Donchian Channel System

input uint                 DonchianPeriod=12;                           //Período del canal
input Applied_Extrem       Extremes=CLOSE_HIGH_LOW;                     //Tipo de extremos
//--- Selección de la estrategia aplicada

input Strategy             CurStrategy=Donchian_AvrSpeed_RSI;           //Estrategia seleccionada

//--- Parámetros del indicador Average Speed

input int                  Inp_Bars=1;                                  //Número de barras
input ENUM_APPLIED_PRICE   Price=PRICE_CLOSE;                           //Precio aplicado
input double               Trend_lev=2;                                 //Nivel de tendencia
//--- Parámetros del indicador x4period_rsi_arrows

input uint                 RSIperiod1=7;                                //Período RSI_1
input uint                 RSIperiod2=12;                               //Período RSI_2
input uint                 RSIperiod3=18;                               //Período RSI_3
input uint                 RSIperiod4=32;                               //Período RSI_4
input ENUM_APPLIED_PRICE   Applied_price=PRICE_WEIGHTED;                //Precio aplicado
input uint                 rsiUpperTrigger=62;                          //Nivel de sobrecompra
input uint                 rsiLowerTrigger=38;                          //Nivel de sobreventa
//--- Parámetros del Trailing Stop

input bool                 UseTrailing=false;                           //Uso del Trailing Stop

Conclusiones

A base de la simulación del sistema comercial según los canales de Donchian, han sido hechas las siguientes conclusiones y observaciones sobre sus características:

  • El trading con canales se ha mostrado como una estrategia tendencial clásica, y para mejorarla es necesario introducir los filtros del movimiento lateral.
  • Los mejores resultados se han observado en el mercado de futuros.
  • A diferencia del cálculo clásico de los límites máximos y mínimos de los canales, el modo CLOSE_HIGH_LOW (según los precios de cierre) se ha mostrado mucho mejor. Eso es debido al hecho de que en el mercado moderno, para EURUSD probado, son típicas las emisiones del precio en forma de sombras largas. Ellas destorcían considerablemente las bandas del canal, mientras que los precios de cierre han resultado ser más objetivos.
  • Además, los mejores resultados se han observado no en los gráficos diarios, sino en los tiemaframes М30 — H1.
  • Con eso, el período eficaz se oscila de 10 a 20 velas.

Conclusión

Al final del artículo se adjuntan todos los archivos mencionados, ordenados por carpetas. Por eso, para un trabajo correcto basta con colocar la carpeta MQL5 en la raíz del terminal. También se utiliza la librería de la interfaz gráfica EasyAndFastGUI, que se puede coger del siguiente artículo.

Programas usados en el artículo:

#
 Nombre
Tipo
Descripción
1
DonchianExpert.mq5 Asesor Experto
 El EA compuesto que incluye 4 estrategias basadas en los canales de Donchian.
2
DonchianUI.mqh Librería  Clase de la interfaz de usuario.
3
TradeFunctions.mqh Librería  Clase de funciones comerciales.
4
Trailing.mqh Librería  Clase de seguimiento de posiciones abiertas.
5
average_speed.mq5 Indicador  Indicador de la velocidad media del cambio del precio.
6
donchian_channels_system.mq5 Indicador  Indicador Canal de Donchian con visualización de las velas que rompen las bandas del canal.
7 x4period_rsi_arrows.mq5 Indicador  Indicador semafórico de cuatro RSI con diferentes timeframes.