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

SignalMAAboveBelow 3 - librería para MetaTrader 5

Visualizaciones:
657
Ranking:
(14)
Publicado:
2018.07.03 09:21
\MQL5\Signal\ \MQL5\Experts\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Desarrollo de la segunda versión de la librería SignalMAAboveBelow 2.


Novedades en la versión 3

  • El parámetro CurrentBarSize - tamaño de la barra actual (se calcula como Close-Open);
  • El parámetro PreviousBarSize - calcula el tamaño de la barra anterior (se calcula como Close-Open).

En este caso, si el precio en la barra actual se encuentra POR ENCIMA del indicador, ambas barras tienen que ser alcistas. Si el precio en la barra actual se encuentra POR DEBAJO del indicador, ambas barras tienen que ser bajistas. De esta manera, ambas parámetros (CurrentBarSize y PreviousBarSize) sirven del filtro de protección al abrir una posición.

En el módulo de señales, incluimos las series temporales en el constructor:

//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CSignalMA::CSignalMA(void) : m_reverse(false),
                             m_ma_period(12),
                             m_ma_shift(0),
                             m_ma_method(MODE_SMA),
                             m_ma_applied(PRICE_CLOSE),
                             m_pattern_0(80),
                             m_size_current_bar(40),
                             m_size_previous_bar(20)
  {
//--- initialization of protected data
   m_used_series=USE_SERIES_OPEN+USE_SERIES_HIGH+USE_SERIES_LOW+USE_SERIES_CLOSE;
  }

Después de incluir las series temporales, se puede usar los objetos m_close y m_open de las clases CiClose y CiOpen, respectivamente (estos objetos están declarados en un nivel más alto, en el nivel del padre ExpertBase.mqh).

Trabajamos con estos objetos en CSignalMA::LongCondition

//+------------------------------------------------------------------+
//| "Voting" that price will grow.                                   |
//+------------------------------------------------------------------+
int CSignalMA::LongCondition(void)
  {
   if(m_type_trade==1) // m_type_trade: enum type of trade: 0 -> BUY, 1 -> SELL, 2 -> BUY and SELL
      return(0);
   int result=0;
   int idx   =StartIndex();
//---
   if(m_close.GetData(idx+1)-m_open.GetData(idx+1)<m_previous_bar_size*PriceLevelUnit())
      return(0);
   if(m_close.GetData(idx)-m_open.GetData(idx)<m_current_bar_size*PriceLevelUnit())
      return(0);
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar

y en CSignalMA::ShortCondition

//+------------------------------------------------------------------+
//| "Voting" that price will fall.                                   |
//+------------------------------------------------------------------+
int CSignalMA::ShortCondition(void)
  {
//--- m_type_trade: enum type of trade: 0 -> BUY, 1 -> SELL, 2 -> BUY and SELL
   if(m_type_trade==0)
      return(0);
   int result=0;
   int idx=StartIndex();
//---
   if(m_open.GetData(idx+1)-m_close.GetData(idx+1)<m_previous_bar_size*PriceLevelUnit())
      return(0);
   if(m_open.GetData(idx)-m_close.GetData(idx)<m_current_bar_size*PriceLevelUnit())
      return(0);
//--- analyze positional relationship of the close price and the indicator at the first analyzed bar

Ejemplo de apertura de las posiciones con el parámetro Reverse == false:

SignalMAAboveBelow 3 Open Buy

Fig. 1. SignalMAAboveBelow 3 - apertura de la posición BUY

SignalMAAboveBelow 3 Open Sell

Fig. 2. SignalMAAboveBelow 3 - apertura de la posición SELL


Parámetros del módulo de señales

  • Reverse - bandera de la reversión de señales;
  • PeriodMA - período de promediación del indicador Moving Average;
  • Shift - desplazamiento del indicador Moving Average por la horizontal;
  • Method - tipo del suavizado del indicador Moving Average;
  • Applied - tipo del precio a base del cual se calcula el indicador Moving Average;
  • TypeOfTrade - tipo de señales comerciales: 0 → BUY, 1 → SELL, 2 → BUY and SELL;
  • CurrentBarSize - tamaño de la barra actual (se calcula como Close-Open);
  • PreviousBarSize - tamaño de la barra anterior (se calcula como Close-Open).

Los parámetros del EA de prueba TestSignalMAAboveBelow3.mq5 están predefinidos, la optimización no se realizaba.

Por cierto, si en el EA TestSignalMAAboveBelow3.mq5 generado en el Asistente para MQL5,

//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string             Expert_Title                 ="TestSignalMAAboveBelow3"; // Document name
ulong                    Expert_MagicNumber           =20884;                     // 
bool                     Expert_EveryTick             =false;                     // 
//--- inputs for main signal

permitimos el trabajo EN CADA TICK (para eso, "false" que se pone por defecto, se sustituye por "true"), se puede obtener un resultado más interesante: el EA va a procesar más rápidamente la condición cuando la barra actual (será la barra con el índice #0) será igual o un poco más grande que el parámetro establecido CurrentBarSize.

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

VSI VSI

VSI (Volatility Switch Indicator) - indicador del cambio de la volatilidad.

Trend Range Trend Range

Indicador del estado del mercado.

Volume Average percent Volume Average percent

Es una versión normalizada que muestra el volumen expresado en por cientos en comparación con el volumen medio durante el período seleccionado.

Chande's DMI (Dynamic Momentum Index) Chande's DMI (Dynamic Momentum Index)

Dynamic Momentum Index (DMI) es un RSI con período variable. Al usar los ajustes predefinidos, el período del RSI se oscila de 3 a 30. La variabilidad del período hace que el RSI sea más sensible hacia los movimientos del precio de corta duración. Cuanto más alta sea la volatilidad del precio, menor será el período. El indicador se interpreta igual como el RSI, pero las señales aparecen antes.