Exp_ColorZerolagMomentum_X2: Sistema de Trading para MetaTrader 5

Mike 2017.01.26 18:08 43 0 0
Archivos adjuntos

El sistema de trading Exp_ColorZerolagMomentum_X2 se basa en las señales de dos indicadores ColorZerolagMomentum. El primer indicador ayuda a identificar la dirección de la tendencia lenta mediante la posición de las líneas principal y de señal. El segundo indicador determina el momento para abrir una operación, cuando las líneas se cruzan o se tocan. Se genera una señal al cerrar una barra si se cumplen dos condiciones:

  • Las señales de la tendencia rápida y lenta coinciden;
  • La dirección de la tendencia rápida ha cambiado.

Parámetros de entrada para el Asesor Experto:

//+-------------------------------------------------+
//| Parámetros de entrada del indicador EA           |
//+-------------------------------------------------+
inputstring Trade="Gestión de operaciones";    //+============== GESTIÓN DE OPERACIONES ==============+  
inputdouble MM=0.1;               //Porcentaje del depósito en una operación
input MarginMode MMMode=LOT;      //método de detección del valor del lote
inputuint    StopLoss_=1000;      //Stop Loss en puntos
inputuint    TakeProfit_=2000;      //Take Profit en puntos
inputstring MustTrade="Permisos de operación";    //+============== PERMISOS DE OPERACIÓN ==============+  
inputint    Deviation_=10;       //desviación máxima de precio en puntos
inputbool   BuyPosOpen=true;     //Permiso para abrir posición larga
inputbool   SellPosOpen=true;    //Permiso para abrir posición corta
//+-------------------------------------------------+
//| Parámetros de entrada del indicador de filtro        |
//+-------------------------------------------------+
inputstring Filter="PARÁMETROS PARA LA TENDENCIA LENTA";    //+============== PARÁMETROS PARA LA TENDENCIA LENTA ==============+  
inputENUM_TIMEFRAMES TimeFrame=PERIOD_H6;  //1 Periodo gráfico para la tendencia
inputuint    smoothing=15;
inputENUM_APPLIED_PRICE IPC=PRICE_CLOSE;//Precio aplicado
//----
inputdouble Factor1=0.05;
inputuint    Momentum_period1=8;
//----
inputdouble Factor2=0.10;
inputuint    Momentum_period2=21;
//----
inputdouble Factor3=0.16;
inputuint    Momentum_period3=34;
//----
inputdouble Factor4=0.26;
inputint    Momentum_period4=55;
//----
inputdouble Factor5=0.43;
inputuint    Momentum_period5=89;
inputuint SignalBar=1; //índice de barra para obtener una señal de entrada
inputbool   BuyPosClose=true;     //Permiso para cerrar posiciones largas por tendencia
inputbool   SellPosClose=true;    //Permiso para cerrar posiciones cortas por tendencia
//+-------------------------------------------------+
//| Parámetros de entrada del indicador de entrada         |
//+-------------------------------------------------+
inputstring Input="PARÁMETROS DE ENTRADA";       //+=============== PARÁMETROS DE ENTRADA ===============+  
inputENUM_TIMEFRAMES TimeFrame_=PERIOD_M30;  //2 Periodo gráfico para la entrada
inputuint    smoothing_=15;
inputENUM_APPLIED_PRICE IPC_=PRICE_CLOSE;//Precio aplicado
//----
inputdouble Factor1_=0.05;
inputuint    Momentum_period1_=8;
//----
inputdouble Factor2_=0.10;
inputuint    Momentum_period2_=21;
//----
inputdouble Factor3_=0.16;
inputuint    Momentum_period3_=34;
//----
inputdouble Factor4_=0.26;
inputint    Momentum_period4_=55;
//----
inputdouble Factor5_=0.43;
inputuint    Momentum_period5_=89;
inputuint SignalBar_=1;//índice de barra para obtener una señal de entrada
inputbool   BuyPosClose_=false;     //Permiso para cerrar posiciones largas por señal
inputbool   SellPosClose_=false;    //Permiso para cerrar posiciones cortas por señal
//+-------------------------------------------------+

Los parámetros de texto en el código de entrada son solo para mejorar la visualización de la ventana de parámetros de entrada del experto.

Los indicadores ColorZerolagMomentum_HTF en el EA están destinados únicamente para una visualización más cómoda de las tendencias en el probador de estrategias; en otros modos de operación están inactivos.

Coloca los archivos compilados ColorZerolagMomentum.ex5 y ColorZerolagMomentum_HTF.ex5 en la carpeta <carpeta_de_datos_terminal>\MQL5\Indicators.

Después de la compilación, el archivo Exp_ColorZerolagMomentum.ex5 contiene los indicadores ColorZerolagMomentum.ex5 y ColorZerolagMomentum_HTF.ex5 como recursos, por lo que no es necesario que estén presentes en la carpeta del terminal para que el EA compilado funcione. Para esto, se ha añadido el código correspondiente al código del EA para incluir estos indicadores en el archivo ejecutable del experto.

Los archivos ejecutables de los indicadores han sido añadidos como recursos en el ámbito global.

//---- Incluir los indicadores en el código EA como recursos
#resource "\Indicators\ColorZerolagMomentum.ex5"
#resource "\Indicators\ColorZerolagMomentum_HTF.ex5"

Se cambiaron las rutas de los indicadores utilizados como recursos en el bloque de la función OnInit()

//---- obteniendo el manejador del indicador ColorZerolagMomentum
   InpInd_Handle=iCustom(Symbol(),TimeFrame,"::Indicators\ColorZerolagMomentum",
                         smoothing,IPC,Factor1,Momentum_period1,Factor2,Momentum_period2,Factor3,Momentum_period3,Factor4,Momentum_period4,Factor5,Momentum_period5);
   if(InpInd_Handle==INVALID_HANDLE)
     {
      Print(" Falló al obtener el manejador del indicador ColorZerolagMomentum");
      return(INIT_FAILED);
     }

//---- obteniendo el manejador del indicador ColorZerolagMomentum
   InpInd_Handle_=iCustom(Symbol(),TimeFrame_,"::Indicators\ColorZerolagMomentum",
                          smoothing_,IPC_,Factor1_,Momentum_period1_,Factor2_,Momentum_period2_,Factor3_,Momentum_period3_,Factor4_,Momentum_period4_,Factor5_,Momentum_period5_);
   if(InpInd_Handle_==INVALID_HANDLE)
     {
      Print(" Falló al obtener el manejador del indicador ColorZerolagMomentum");
      return(INIT_FAILED);
     }

   if(MQLInfoInteger(MQL_VISUAL_MODE))
     {
      //---- obteniendo el manejador del indicador ColorZerolagMomentum_HTF
      int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\ColorZerolagMomentum_HTF",TimeFrame,
                             smoothing,IPC,Factor1,Momentum_period1,Factor2,Momentum_period2,Factor3,Momentum_period3,Factor4,Momentum_period4,Factor5,Momentum_period5);
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Falló al obtener el manejador del indicador ColorZerolagMomentum_HTF");
         return(INIT_FAILED);
        }
      //---- obteniendo el manejador del indicador ColorZerolagMomentum_HTF
      Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\ColorZerolagMomentum_HTF",TimeFrame_,
                             smoothing_,IPC_,Factor1_,Momentum_period1_,Factor2_,Momentum_period2_,Factor3_,Momentum_period3_,Factor4_,Momentum_period4_,Factor5_,Momentum_period5_);
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Falló al obtener el manejador del indicador ColorZerolagMomentum_HTF");
         return(INIT_FAILED);
        }

     }

Así, el archivo ejecutable compilado del experto se puede utilizar en otros terminales de trading sin necesidad de los indicadores.

Ten en cuenta que la biblioteca TradeAlgorithms.mqh permite utilizar Asesores Expertos con brokers que ofrecen spread no cero y la opción de establecer Stop Loss y Take Profit junto con la apertura de posición. Puedes descargar más variantes de la biblioteca en el siguiente enlace: Algoritmos de Trading.

Se han utilizado los parámetros de entrada del Asesor Experto por defecto durante las pruebas mostradas a continuación. No se han utilizado Stop Loss y Take Profit durante las pruebas.

Fig. 1. Ejemplos de operaciones en el gráfico

Fig. 1. Ejemplos de operaciones en el gráfico

Resultados de las pruebas para 2015 sobre GBPJPY, tendencia lenta en H6, entrada por tendencia rápida en M30:

Fig. 2. Gráfico de resultados de la prueba

Fig. 2. Gráfico de resultados de la prueba

Lista
Comentarios 0