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 |
//+-------------------------------------------------+
input string Trade="Gestión de operaciones"; //+============== GESTIÓN DE OPERACIONES ==============+
input double MM=0.1; //Porcentaje del depósito en una operación
input MarginMode MMMode=LOT; //método de detección del valor del lote
input uint StopLoss_=1000; //Stop Loss en puntos
input uint TakeProfit_=2000; //Take Profit en puntos
input string MustTrade="Permisos de operación"; //+============== PERMISOS DE OPERACIÓN ==============+
input int Deviation_=10; //desviación máxima de precio en puntos
input bool BuyPosOpen=true; //Permiso para abrir posición larga
input bool SellPosOpen=true; //Permiso para abrir posición corta
//+-------------------------------------------------+
//| Parámetros de entrada del indicador de filtro |
//+-------------------------------------------------+
input string Filter="PARÁMETROS PARA LA TENDENCIA LENTA"; //+============== PARÁMETROS PARA LA TENDENCIA LENTA ==============+
input ENUM_TIMEFRAMES TimeFrame=PERIOD_H6; //1 Periodo gráfico para la tendencia
input uint smoothing=15;
input ENUM_APPLIED_PRICE IPC=PRICE_CLOSE;//Precio aplicado
//----
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; //índice de barra para obtener una señal de entrada
input bool BuyPosClose=true; //Permiso para cerrar posiciones largas por tendencia
input bool SellPosClose=true; //Permiso para cerrar posiciones cortas por 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 gráfico para la entrada
input uint smoothing_=15;
input ENUM_APPLIED_PRICE IPC_=PRICE_CLOSE;//Precio aplicado
//----
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;//índice de barra para obtener una señal de entrada
input bool BuyPosClose_=false; //Permiso para cerrar posiciones largas por señal
input bool 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.
#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()
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
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
Publicaciones relacionadas
- Señales de Trading con MQL5: Patrones de Estrellas y MFI
- Crea tu Asesor Experto con MQL5: Señales de Trading Basadas en Dark Cloud Cover y Piercing Line
- Crea tu Asesor Experto con MQL5: Señales de Trading Basadas en Estrellas de la Mañana/Atardecer y CCI
- Cómo Crear un Asesor Experto con MQL5: Señales de Trading Basadas en Estrellas y Estocástico
- MQL5 Wizard: Crea un Asesor Experto con Señales de Bullish Harami y Bearish Harami + CCI
