Mira cómo descargar robots gratis
¡Búscanos en Facebook!
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

MQL5 Wizard - Señales de trading basadas en el cruce de dos medias móviles exponenciales suavizadas - Asesor Experto para MetaTrader 5

Visualizaciones:
3852
Ranking:
(32)
Publicado:
2014.01.14 12:13
Actualizado:
2016.11.22 07:33
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

MQL5 Wizard permite crear el código de Asesores Expertos automáticamente. Vea Crear Asesores Expertos listos para usar con el MQL5 Wizard para más detalles.

Aquí vamos a considerar la estrategia basada en el cruce de dos medias móviles exponenciales suavizadas (EMA rápida y EMA lenta). La estrategia llamada "Signals based on crossover of two EMA" (al crear el Asesor Experto automáticamente con el MQL5 Wizard).

Señales de trading:

  • Compra: La EMA rápida cruza de manera ascendente la EMA lenta
  • Venta: La EMA rápida cruza de manera descendente la EMA lenta

Esta estrategia se implementa en la clase CSignalCrossEMA.

Figura 1. Señales de trading basadas en el cruce de dos medias móviles exponenciales suavizadas

Figura 1. Señales de trading basadas en el cruce de dos medias móviles exponenciales suavizadas


Señales de Trade

La estrategia de trading se implementa en la clase CSignalCrossEMA, contiene algunos métodos protected para simplificar el acceso a los valores de indicadores y precios:

double   FastEMA(int ind)      // devuelve el valor de la media móvil rápida de la barra
double   SlowEMA(int ind)      // devuelve el valor de la media móvil lenta de la barra
double   StateEMA(int ind)     // devuelve la diferencia entre las medias móviles rápida y lenta de la barra


1. Apertura de una posición larga

Condiciones para abrir posición larga:

  • StateEMA(1)>0 y StateEMA(2)<0: la EMA rápida cruza de manera ascendente la EMA lenta en la última barra completada.
//+------------------------------------------------------------------+
//| Comprueba condiciones de apertura de posición larga (compra)     |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

2. Cierre de posición larga

Condiciones para cerrar posición larga:

  • StateEMA(1)<0 y StateEMA(2)>0: la EMA rápida cruza de manera descendente la EMA lenta en la última barra completada.
//+------------------------------------------------------------------+
//| Comprueba condiciones de cierre de posición larga                |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }


3. Apertura de posición corta

Las condiciones para abrir una posición corta son las mismas que las condiciones de cierre de una posición larga.

//+------------------------------------------------------------------+
//| Comprueba condiciones de apertura de posición corta (venta)      |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }

4. Cierre de posición corta

Las condiciones para cerrar una posición corta son las mismas que las condiciones de apertura de una posición larga.

//+------------------------------------------------------------------+
//| Comprueba condiciones de cierre de posición corta                |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseShort(double& price)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

Creando el Asesor Experto con el MQL5 Wizard

Para crear un robot de trading basado en esta estrategia debe seleccionar "Signals based on crossover of two EMA" para las propiedades de señal del Expert Advisor en la opción "Expert Advisor (generate)" de MQL5 Wizard:

Figura 2. Seleccionar "Signals, based on crossover of two EMA" en MQL5 Wizard

Figura 2. Seleccionar "Signals, based on crossover of two EMA" en MQL5 Wizard

Lo próximo que debe especificar es el algoritmo necesario para trailing stop y el sistema de gestión de capital. El código del Asesor Experto será creado automáticamente, puede compilarlo y verificarlo en el Probador de Estrategias del terminal de cliente MetaTrader 5.

Además, la biblioteca estándar de clases contiene "Signals based on crossover of two MA", implementada en la clase CSignalCrossMA. La idea de trading es similar, pero ofrece varias características adicionales (especifica tipos, desplazamientos y métodos de promedio y el uso de niveles Take Profit y Stop Loss).

Figura 3. "Signals, based on crossover of two MA" en MQL5 Wizard

Figure 3. "Signals based on crossover of two MA" en MQL5 Wizard


Resultados de las pruebas

Vamos a considerar una simulación del asesor experto con datos históricos (EURUSD H1, periodo personalizado: 2010.01.01-2011.01.05,  FastPeriod=12, SlowPeriod=24).

En la creación del Asesor Experto se seleccionó una gestión de capital con volumen fijo de 0.1 lotes (Trading with fixed trade volume, 0.1), y sin algoritmo de Trailing Stop (Trailing Stop not used).

Figura 4. Resultados de la simulación histórica del Asesor Experto, basada en el cruce de dos EMA

Figura 4. Resultados de la simulación histórica del Asesor Experto, basada en el cruce de dos EMA


Adjuntos: El fichero SignalCrossEMA.mqh con la clase CSignalCrossEMA  se encuentra en la carpeta terminal_data_folder\MQL5\Include\Expert\Signal.

El fichero crossover_2ema.mq5 contiene el código, del Asesor Experto, creado con MQL5 Wizard.


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

MQL5 Wizard - Señales de trading basadas en el cruce del precio con la Media Móvil y confirmadas por ADX MQL5 Wizard - Señales de trading basadas en el cruce del precio con la Media Móvil y confirmadas por ADX

Vamos a examinar las señales de trading basadas en el cruce del precio con el indicador de media móvil y confirmadas con ADX. El código del Asesor Experto basado en esta estrategia se puede generar automáticamente mediante el Asistente para MQL5 (MQL5 Wizard).

MQL5 Wizard - Señales de trading basadas en tres medias móviles (3EMA) MQL5 Wizard - Señales de trading basadas en tres medias móviles (3EMA)

Vamos a examinar las señales de trading basadas en tres medias móviles. El código del Asesor Experto basado en esta estrategia se puede generar automáticamente mediante el Asistente para MQL5 (MQL5 Wizard).

MQL5 Wizard - Señales de trading basadas en el cruce de las lineas principal y de señal del indicador MACD MQL5 Wizard - Señales de trading basadas en el cruce de las lineas principal y de señal del indicador MACD

Vamos a examinar las señales de trading basadas en el cruce de las lineas principal y de señal del indicador MACD (CSignalMACD de la biblioteca estándar MQL5). El código del Asesor Experto basado en esta estrategia se puede generar automáticamente mediante el Asistente para MQL5 (MQL5 Wizard).

MQL5 Wizard - Señales de trading basadas en el cruce de dos EMA con filtro de tiempo intradía MQL5 Wizard - Señales de trading basadas en el cruce de dos EMA con filtro de tiempo intradía

Vamos a examinar las señales de trading basadas en el cruce del precio de dos medias móviles exponenciales suavizadas con filtro de tiempo intradía. El código del Asesor Experto basado en esta estrategia se puede generar automáticamente mediante el Asistente para MQL5 (MQL5 Wizard).