Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Asesores Expertos

Exp_ColorZerolagMomentum_X2 - Asesor Experto para MetaTrader 5

Visualizaciones:
693
Ranking:
(12)
Publicado:
2017.01.20 12:46
\MQL5\Include\
TradeAlgorithms.mqh (178.23 KB) ver
\MQL5\Indicators\ \MQL5\Experts\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Sistema comercial de tendencia Exp_ColorZerolagMomentum_X2, basado en las señales de dos indicadores ColorZerolagMomentum. Con el primer indicador se define la dirección de la tendencia lenta según la posición de la línea principal y la línea de señal, y con el segundo indicador se determina el momento de realización de la operación, cuando tiene lugar el cruce o el contacto entre las líneas. La señal de ejecución de operaciones se forma en el momento del cierre de una barra, si se han dado dos condiciones.
  1. Las señales de las tendencias lenta y rápida coinciden;
  2. Ha cambiado la dirección de la tendencia rápida.

Parámetros de entrada del experto:

//+-------------------------------------------------+
//| Parámetros de entrada del indicador del experto           |
//+-------------------------------------------------+
input string Trade="Control del comercio";    //+============== CONTROL DEL COMERCIO ==============+  
input double MM=0.1;               //Parte de los recursos financieros del depósito en la operación
input MarginMode MMMode=LOT;      //modo de definición del tamaño del lote
input uint    StopLoss_=1000;      //stop-loss en puntos
input uint    TakeProfit_=2000;    //take-profit en puntos
input string MustTrade="Permiso para comerciar";    //+============== PERMISO PARA COMERCIAR ==============+  
input int    Deviation_=10;       //desviación máxima del precio en puntos
input bool   BuyPosOpen=true;     //Permiso para entrar en posición larga
input bool   SellPosOpen=true;    //Permiso para entrar en posición corta
//+-------------------------------------------------+
//| Parámetros de entrada del indicador del filtro            |
//+-------------------------------------------------+
input string Filter="PARÁMETROS DE LA TENDENCIA LENTA";    //+============== PARÁMETROS DE LA TENDENCIA ==============+  
input ENUM_TIMEFRAMES TimeFrame=PERIOD_H6;  //1 Periodo del gráfico para la tendencia
input uint    smoothing=15;
input ENUM_APPLIED_PRICE IPC=PRICE_CLOSE;//Constante de precio
//----
input double Factor1=0.05;
input uint    Momentum_period1=8;
//----
input double Factor2=0.10;
input uint    Momentum_period2=21;
//----
input double Factor3=0.16;
input uint    Momentum_period3=34;
//----
input double Factor4=0.26;
input int    Momentum_period4=55;
//----
input double Factor5=0.43;
input uint    Momentum_period5=89;
input uint SignalBar=1; //número de la barra para obtener la señal de entrada
input bool   BuyPosClose=true;     //Permiso para salir de las posiciones largas según la tendencia
input bool   SellPosClose=true;    //Permiso para salir de las posiciones cortas según la tendencia
//+-------------------------------------------------+
//| Parámetros de entrada del indicador de entrada              |
//+-------------------------------------------------+
input string Input="PARÁMETROS DE ENTRADA";       //+=============== PARÁMETROS DE ENTRADA ===============+  
input ENUM_TIMEFRAMES TimeFrame_=PERIOD_M30;  //2 Periodo del gráfico para la entrada
input uint    smoothing_=15;
input ENUM_APPLIED_PRICE IPC_=PRICE_CLOSE;//Constante de precio
//----
input double Factor1_=0.05;
input uint    Momentum_period1_=8;
//----
input double Factor2_=0.10;
input uint    Momentum_period2_=21;
//----
input double Factor3_=0.16;
input uint    Momentum_period3_=34;
//----
input double Factor4_=0.26;
input int    Momentum_period4_=55;
//----
input double Factor5_=0.43;
input uint    Momentum_period5_=89;
input uint SignalBar_=1;//número de la barra para obtener la señal de entrada
input bool   BuyPosClose_=false;     //Permiso para salir de las posiciones largas según la señal
input bool   SellPosClose_=false;    //Permiso para salir de las posiciones cortas según la señal
//+-------------------------------------------------+

Las variables de flecha con texto en el código de los parámetros de entrada sirven solo para representar visualmente de forma más clara la ventana de los parámetros de entrada del experto.

Los indicadores ColorZerolagMomentum_HTF en el experto sirven solo para visualizar de forma más cómoda las tendencias en el simulador de estrategias, y no funcionan en los otros modos de trabajo.

Para que el asesor funcione correctamente, es imprescindible que los archivos compilados de los indicadores ColorZerolagMomentum.ex5 y ColorZerolagMomentum_HTF.ex5 estén en la carpeta catálogo_de_datos_del_terminal\MQL5\Indicators.

Después de la compilación, el archivo del experto Exp_ColorZerolagMomentum.ex5 contendrá los indicadores ColorZerolagMomentum.ex5 y ColorZerolagMomentum_HTF.ex5 dentro de sí como recursos, ¡por eso, en lo sucesivo no hay necesidad de que estén en la carpeta del terminal para que el experto funcione! Para ello, se ha añadido al código del experto el código correspondiente para incluir estos indicadores en un archivo ejecutable del experto.

A nivel global se han añadido como recursos los archivos ejecutables de los indicadores

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

En el bloque de la función OnInit() se han modificado las rutas de línea a los indicadores usados como recurso

//---- 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(" No se ha logrado 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(" No se ha logrado 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(" No se ha logrado 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(" No se ha logrado obtener el manejador del indicador ColorZerolagMomentum_HTF _");
         return(INIT_FAILED);
        }

     }

De esta forma, el archivo ejecutable compilado del experto se puede usar en otros terminales comerciales sin indicadores, de forma independiente.

Hay que tener en cuenta que el archivo de la biblioteca TradeAlgorithms.mqh está pensado para usar expertos con brókers que propongan un spread distinto de cero y la posibilidad de establecer Stop Loss y Take Profit simultáneamente en la apertura de posición. Se pueden descargar otras variantes de esta biblioteca a través del enlace Trade Algorithms.

Con las simulaciones que se exponen más abajo se usaron los parámetros por defecto del experto. En las simulaciones no se usaron Stop Loss o Take Profit.

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

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

Resultados de la simulación en 2015 con GBPJPY, tendencia lenta en H6, entrada con tendencia rápida en M30:

Fig. 2. Gráfico de resultados de simulación

Fig. 2. Gráfico de resultados de simulación

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/16981

Fractal_DeMarker Fractal_DeMarker

Indicador fractal de DeMark.

Fractal_Keltner_HTF Fractal_Keltner_HTF

Indicador Fractal_Keltner con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

LifeHack Balance Equity LifeHack Balance Equity

El indicador muestra el balance y la equidad de la cuenta comercial.

Stoch Stoch

Comercio a través de órdenes pendientes Sell Limit y Buy Limit. Eliminar todas las órdenes y cerrar las posiciones a las 23:59.