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.
#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


Comentarios 0