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 tres medias móviles (3EMA) - Asesor Experto para MetaTrader 5

Visualizaciones:
2076
Ranking:
(26)
Publicado:
2014.01.14 12:06
Actualizado:
2016.11.22 07:33
signal3ema.mqh (12.94 KB) ver
threeema.mq5 (6.19 KB) ver
¿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í consideraremos la estrategia de tendencia, basada en tres medias móviles. La estrategia llamada "Signals based on three EMA". Para determinar la tendencia, se utilizan tres medias móviles exponencialmente suavizadas: FastEMA (rápida), MediumEMA (media) y SlowEMA (lenta).

Señales de trading:

  • Compra: FastEMA>MediumEMA>SlowEMA (tendencia alcista).
  • Venta: FastEMA<MediumEMA<SlowEMA (tendencia bajista).

Esta estrategia se implementa en la clase CSignal3EMA.

Figura 1. Señales de trading, basadas en tres medias móviles

Figura 1. Señales de trading, basadas en tres medias móviles

Señales de Trade

La estrategia de trading se implementa en la clase CSignal3EMA, contiene algunos métodos protected para simplificar el acceso a los valores de las tres medias móviles ( Rápida, Media y Lenta):

double  FastEMA(int ind)      // devuelve el valor de la EMA rápida de la barra
double  MediumEMA(int ind)    // devuelve el valor de la EMA media de la barra
double  SlowEMA(int ind)      // devuelve el valor de la EMA lenta de la barra
Los valores del indicador en la barra 0 (incompleta) puede variar, por lo que es necesario llevar a cabo la comprobación de las condiciones de trading utilizando los datos de las barras completas (formadas).

1. Apertura de una posición larga

La tendencia alcista está determinada por la condición siguiente: FastEMA>MediumEMA>SlowEMA:

  • FastEMA(1)>MediumEMA(1): EMA Rápida es mayor que la EMA Media (en la última barra completa);
  • MediumEMA(1)>SlowEMA(1): EMA Media es mayor que la EMA lenta (en la última barra completa);
//+------------------------------------------------------------------+
//| Comprueba condiciones de apertura de posición larga (compra)     |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;
//--- Comprobando tendencia alcista (en la última barra completa): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
    return(FastEMA(1)>medium && medium>SlowEMA(1));
  }


2. Cierre de posición larga

La tendencia bajista se determina por la condición siguiente: FastEMA<MediumEMA<SlowEMA:

  • FastEMA(1)<MediumEMA(1): EMA Rápida es menor que la EMA Media (en la última barra completa);
  • MediumEMA(1)<SlowEMA(1): EMA Media es menor que la EMA Lenta (en la última barra completa);
//+------------------------------------------------------------------+
//| Comprueba condiciones de cierre de posición larga                |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseLong(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- Comprobando tendencia bajista (en la última barra completa): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));
  }
Puede mejorar el cierre de las posiciones largas: no es necesario esperar a la tendencia bajista, es posible cerrar las posiciones largas en situación plana, que puede ser determinada por las condiciones siguientes: FastEMA<MediumEMA>SlowEMA.


3. Apertura de posición corta

//+------------------------------------------------------------------+
//| Comprueba condiciones de apertura de posición corta (venta)      |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;
//--- Comprobando tendencia bajista (en la última barra completa): FastEMA(1)<MediumEMA(1)<SlowEMA(1)
   return(FastEMA(1)<medium && medium<SlowEMA(1));

  }

4. Cierre de posición corta

//+------------------------------------------------------------------+
//| Comprueba condiciones de cierre de posición corta                |
//+------------------------------------------------------------------+
bool CSignal3EMA::CheckCloseShort(double& price)
  {
   double medium=MediumEMA(1);
//---
   price=0.0;
//--- Comprobando tendencia alcista (en la última barra completa): FastEMA(1)>MediumEMA(1)>SlowEMA(1)
   return(FastEMA(1)>medium && medium>SlowEMA(1));
  }

Puede mejorar el cierre de las posiciones cortas: no es necesario esperar a la tendencia alcista, es posible cerrar las posiciones cortas en situación plana, que puede ser determinada por las condiciones siguientes: FastEMA>MediumEMA<SlowEMA.


Creando el Asesor Experto con el MQL5 Wizard

Para crear un robot de trading basado en esta estrategia debe seleccionar "Signals based on three 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 three EMA" en MQL5 Wizard

Figura 2. Seleccionar "Signals based on three 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.


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=5, MediumPeriod=12, SlowPeriod=24, StopLoss=400, TakeProfit=900).

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 3. Resultados de la simulación histórica del Asesor Experto, basada en las tres EMA

Figura 3. Resultados de la simulación histórica del Asesor Experto, basada en las tres EMA

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

El fichero threeema.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/250

MQL5 Wizard - Señales de trading basadas en el cruce del precio con el Indicador de Media Móvil MQL5 Wizard - Señales de trading basadas en el cruce del precio con el Indicador de Media Móvil

Vamos a examinar las señales de trading basadas en el cruce del precio con el indicador de media móvil (CSignalMA 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).

Plantilla para Asesor Experto Plantilla para Asesor Experto

Este código es una plantilla para un Asesor Experto, fue escrito por Valery Mazurenko (notused) para el ATC-2010.

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 el cruce de dos medias móviles exponenciales suavizadas MQL5 Wizard - Señales de trading basadas en el cruce de dos medias móviles exponenciales suavizadas

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