English Русский 中文 Deutsch 日本語
preview
Características del Wizard MQL5 que debe conocer (Parte 75): Uso del Awesome Oscillator y Envelopes

Características del Wizard MQL5 que debe conocer (Parte 75): Uso del Awesome Oscillator y Envelopes

MetaTrader 5Sistemas comerciales |
88 0
Stephen Njuki
Stephen Njuki

Introducción

La combinación del Awesome Oscillator con el canal de envolventes es otra combinación de indicadores que estamos considerando, donde fusionamos las sinergias del seguimiento de tendencias con la identificación de soportes y resistencias. Consideramos nuevamente 10 posibles patrones de señales que se pueden obtener de este par y realizamos pruebas de evaluación en el par USD/JPY en el marco temporal de 30 minutos para el año 2023, con pruebas a futuro para el año 2024. Antes de adentrarnos en los patrones de señales, veamos las definiciones básicas de cada uno de estos indicadores, comenzando con el Awesome Oscillator. Este indicador fue desarrollado por el fallecido Bill Williams como un indicador de tendencia que compara los promedios a corto y largo plazo del punto medio del precio de un activo.

Este indicador, AO, se representa como un histograma y, además de ayudar a detectar la dirección de la tendencia y las señales de reversión, también puede ser útil para identificar divergencias bajistas/alcistas, doble pico y cruces de la línea cero. La fórmula clásica es la siguiente:

AO

Donde:

  • AOt = Valor del oscilador Awesome en el tiempo t
  • Mt = (Ht + Lt) / 2 = Precio medio en el tiempo t
  • Ht = Precio máximo en el tiempo t
  • Lt = Precio mínimo en el tiempo t
  • SMA5(Mt) = Media móvil simple (SMA) de 5 períodos del precio medio
  • SMA34(Mt) = Media móvil simple (SMA) de 34 períodos del precio medio

La señal alcista de este indicador se produce normalmente cuando el AO cruza por encima de la línea cero, lo que ocurre cuando el impulso a corto plazo supera al de largo plazo. La señal bajista se produce cuando el AO cruza por debajo de la línea cero. Este indicador también puede utilizarse en una estrategia de doble pico, donde dos picos por encima o por debajo de la línea cero, estando el último más cerca del cero que el primero, pueden presagiar cambios de dirección y, por lo tanto, una nueva señal. Este indicador puede ser muy eficaz en mercados con tendencia y también puede desempeñar un papel secundario como confirmación del impulso.

El canal Envelopes , nuestro segundo indicador, superpone dos líneas, una por encima y otra por debajo de la media móvil del precio, mediante una desviación basada en un porcentaje. Las dos capas superpuestas creadas se denominan bandas: una banda superior y una banda inferior. Este indicador sirve para identificar los niveles de sobrecompra/sobreventa en el precio de los activos, así como los límites de volatilidad. Es eficaz en mercados con rangos definidos, a diferencia del AO mencionado anteriormente, que prospera en mercados con tendencia definida. Esto suele implicar que puede funcionar bien con estrategias de reversión a la media. Su fórmula es la siguiente:

env

Donde:

  • MAt = Media móvil (normalmente SMA o EMA) en el tiempo t
  • P = Desviación porcentual (p. ej., 2 %)
  • Banda superior = Límite superior del canal
  • Banda inferior = Límite inferior del canal

Este indicador de envolvente se utiliza cuando el precio toca la banda superior, lo que indica condiciones de sobrecompra, o cuando el precio entra en contacto con la banda inferior, lo que indica una situación de sobreventa. El uso de la confirmación, especialmente en mercados con fuertes tendencias, puede ser fundamental, ya que el precio puede no "volver a la media", sino seguir pegado a la banda. Las bandas de Envelopes son dinámicas: se expanden en mercados volátiles y se contraen cuando los mercados se enfrían. A menudo se combinan con otros indicadores como el RSI, el MACD o los indicadores de volumen para la validación de la señal, por lo que nuestra combinación con el AO no es nada inusual.

Otras posibles sinergias que pueden surgir de esta combinación son la reducción del desfase en comparación con las señales de tendencia. Las señales de la envolvente suelen ser más anticipativas, a diferencia de las estrategias de tendencia pura que se basan en señales de impulso. Además de permitir operaciones de reversión a la media, como ya se ha argumentado anteriormente, no solo prosperan en condiciones de volatilidad limitadas a rangos, sino que también son buenas para explotar las divergencias de impulso en forma de advertencias de reversión en los límites de la envolvente.


Falsa ruptura de la envolvente en el extremo del AO

Nuestro patrón de apertura es la clásica señal de reversión engañosa que se confirma con una lectura extrema en el AO. La configuración alcista, que equivale a una falsa ruptura bajista, se produce cuando el precio cae brevemente por debajo del límite inferior y luego vuelve a entrar en el canal. Cuando esto sucede, el AO refleja una situación de sobreventa. En otras palabras, los vendedores empujan el precio fuera del nivel de soporte, pero no pueden mantenerlo, lo que indica agotamiento. A menudo, en este punto, el AO es negativo, señal de impulso bajista, y suele estar formando un mínimo local. Por ejemplo, el histograma podría haber sido rojo y estar disminuyendo lentamente de tamaño, o podría observarse una pequeña divergencia alcista en AO con una ruptura falsa. Esta confluencia sugiere que el impulso bajista está disminuyendo, ya que el precio ha alcanzado un punto extremo. Implementamos este patrón en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 0.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_0(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X()) > 0.0 &&
      AO(X() + 1) < 0.0 &&
      Close(X() + 2) > Envelopes_Lo(X() + 2) &&
      Close(X() + 1) <= Envelopes_Lo(X() + 1) &&
      Close(X()) > Envelopes_Lo(X()) //m_symbol.Bid()
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X()) < 0.0 &&
      AO(X() + 1) > 0.0 &&
      Close(X() + 2) < Envelopes_Up(X() + 2) &&
      Close(X() + 1) >= Envelopes_Up(X() + 1) &&
      Close(X()) < Envelopes_Up(X())
   )
   {  return(true);
   }
   return(false);
}

En la banda superior se produce un fake-out bajista equivalente: el precio supera momentáneamente la envolvente superior en una falsa ruptura alcista y luego vuelve a situarse por debajo. El AO estaría por encima de cero, lo que posiblemente indicaría una cima redondeada o barras verdes descendentes. Esto indica una disminución del poder adquisitivo. En esencia, estos patrones engañosos son señales de reversión a la media. Cuando el precio atraviesa una banda de soporte y luego retrocede hacia su interior, a menudo indica un rechazo al intento de ruptura. Las Envelopes definen un rango de precios previsto, de modo que un rápido regreso al interior del canal siempre significa que el movimiento al exterior fue una trampa para compradores o vendedores tardíos. La función del AO es confirmar que la tendencia en realidad no respaldaba la ruptura.

Un AO extremadamente bajo o un histograma rojo descendente durante una falsa ruptura bajista significa que hay condiciones de sobreventa y que los vendedores están agotados. Esto aumenta las probabilidades de un cambio de tendencia alcista. Por el contrario, un AO extremadamente alto o un histograma verde menguante en una falsa señal alcista significa condiciones de sobrecompra. Esto significa que los compradores están perdiendo impulso.

Agregar un filtro AO aumenta la confiabilidad de estas falsas alarmas o rupturas de señal. No solo aumenta la probabilidad de que las entradas sean genuinas, dado que se producen en los extremos cuando el precio vuelve a entrar en las bandas, sino que también proporciona una relación riesgo/recompensa favorable. Esto se debe a que las entradas se realizan en los extremos o cerca de ellos, lo que permite colocar los stops justo por encima/del último máximo oscilante o por debajo/del último mínimo oscilante. Esto quedaría justo por fuera de la envolvente. Al probar este patrón en el par USD/JPY en el marco temporal de 30 minutos durante 2 años, de los cuales solo se utilizó uno, 2023, para el entrenamiento, obtenemos el siguiente informe:

r0

Parece que nuestro patrón es capaz de mantener un rendimiento forward entre ligeramente positivo y prácticamente plano, lo cual constituye una señal prometedora, a falta de realizar pruebas adicionales.


Ruptura sostenida con confirmación del impulso de AO

El Patrón-1, en muchos aspectos, es lo opuesto a una falsa ruptura. Detecta cuándo una ruptura por fuera de la envolvente es real y probable que se materialice. Esto se logra exigiendo un fuerte impulso del AO. La señal alcista se activa cuando el precio cierra por encima de la banda superior durante al menos 2 velas consecutivas y AO muestra un fuerte impulso alcista. Esto se caracteriza por registrar un valor positivo elevado o por encontrarse en una situación de sobrecompra en relación con su rango reciente. En la práctica, si dos barras sucesivas cierran por encima de la banda superior de la envolvente, esto indica un fuerte impulso alcista que logró superar la resistencia.

Si, al mismo tiempo, el AO se sitúa significativamente por encima de cero, posiblemente alcanzando máximos de varios períodos o manteniéndose en verde en niveles elevados, confirma que la presión compradora es fuerte. Esta es una señal de continuación de la fortaleza que implica que la tendencia sigue desarrollándose con fuerza y no solo está tanteando brevemente. Implementamos el patrón 1 en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 1.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_1(ENUM_POSITION_TYPE T)
{  vector _last = AO_Last3(X());
   if
   (
      T == POSITION_TYPE_BUY &&
      _last[0] < 0.0 &&
      _last[2] < 0.0 &&
      _last[0] > _last[2] &&
      Close(X() + 2) > Envelopes_Mid(X() + 2) &&
      Close(X() + 1) <= Envelopes_Mid(X() + 1) &&
      Close(X()) > Envelopes_Mid(X())
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      _last[0] > 0.0 &&
      _last[2] > 0.0 &&
      _last[0] < _last[2] &&
      Close(X() + 2) < Envelopes_Mid(X() + 2) &&
      Close(X() + 1) >= Envelopes_Mid(X() + 1) &&
      Close(X()) < Envelopes_Mid(X())
   )
   {  return(true);
   }
   return(false);
}

La contraparte bajista es una ruptura a la baja. Cuando tenemos dos o más cierres consecutivos por debajo del límite inferior con el AO profundamente negativo como resultado del impulso de venta. Esto indica una verdadera ruptura con potencial de seguimiento. Este es un patrón diseñado específicamente para mercados en tendencia. A diferencia del patrón 0 anterior, donde asumimos que la envolvente contendría el precio, en este caso el precio logra asentarse fuera de la envolvente durante un tiempo, lo que indica que la volatilidad está aumentando en la dirección de la tendencia. La envolvente puede considerarse como un canal dinámico, donde el precio puede mantenerse fuera de ella durante varias barras. Esto suele ser un indicio de que el rango anterior ha dado paso a un nuevo tramo de tendencia.

El AO, por lo tanto, actúa como un filtro de confirmación. Por ejemplo, si el precio cierra dos veces por encima de la banda superior, pero el AO solo se sitúa ligeramente por encima de cero, la ruptura podría carecer de impulso y ser falsa. Sin embargo, si el AO se mantiene, por ejemplo, muy por encima de su mediana y muestra barras verdes altas consecutivas (una señal de impulso acelerado), esto refuerza la idea de que la ruptura tiene fundamento. Al probar el patrón 1 en condiciones similares a las del patrón 0, se obtiene un informe impresionante con un avance decente, como se muestra a continuación:

r1

El Patrón 1 es uno de los que mejor rendimiento presenta en la prueba walk-forward. Su patrón gráfico para una posición corta se presenta a continuación;

p1



Divergencia de AO en el soporte/resistencia de la envolvente

Nuestro tercer patrón, el patrón 2, aprovecha una de las señales de reversión más potentes del análisis técnico. La divergencia alcista/bajista entre el precio y el oscilador, cuando el precio se encuentra en los límites de la envolvente. Se produce una divergencia alcista cuando el precio forma un mínimo inferior que toca o atraviesa ligeramente la envolvente inferior, lo que indica una prueba de soporte, y simultáneamente el AO forma un mínimo superior, con su valle del histograma menos pronunciado en el segundo descenso que en el primero. Dicho de otro modo, el mercado estaría presionando para alcanzar un nuevo mínimo de precios, pero el AO no lograría alcanzar un nuevo mínimo de impulso. Esta es una señal clásica de que la fuerza descendente está disminuyendo.

En este escenario, la banda inferior de la envolvente actúa como una zona de soporte sólida que coincide con la divergencia, lo que refuerza la hipótesis de reversión. Implementamos este patrón de la siguiente manera en MQL5:

//+------------------------------------------------------------------+
//| Check for Pattern 2.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_2(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X() + 2) > AO(X() + 1) &&
      AO(X() + 1) < AO(X()) &&
      Close(X() + 2) > Envelopes_Lo(X() + 2) &&
      Close(X() + 1) <= Envelopes_Lo(X() + 1) &&
      Close(X()) > Envelopes_Lo(X())
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X() + 2) < AO(X() + 1) &&
      AO(X() + 1) > AO(X()) &&
      Close(X() + 2) < Envelopes_Up(X() + 2) &&
      Close(X() + 1) >= Envelopes_Up(X() + 1) &&
      Close(X()) < Envelopes_Up(X())
   )
   {  return(true);
   }
   return(false);
}

La variante de divergencia bajista es la imagen especular. El precio alcanza un máximo más alto en o justo por encima del límite superior (poniendo a prueba una resistencia clave), pero el indicador AO muestra un máximo más bajo en los picos de su histograma. Esto nos indica que, aunque el precio alcanzó un nuevo máximo, el impulso comprador fue más débil la segunda vez. Esto indica un probable pico y una posterior reversión. Los patrones de divergencia son especialmente útiles para anticipar cambios de tendencia. Al exigir que los precios extremos se produzcan cerca de las bandas de la envolvente, terminamos centrándonos en las divergencias en los niveles lógicos de soporte/resistencia. Esto suele hacerlas más potentes. Para ilustrarlo, una divergencia alcista que se produzca justo en el límite inferior podría marcar el impulso final de un movimiento bajista antes de un rebote significativo.

La psicología en este caso es intuitiva. La envolvente nos indica que el precio se encuentra en una zona de sobreventa, y el AO nos indica que el impulso relativo ya no es tan bajista como sugiere la evolución del precio. Dicho de otro modo, los bajistas empujaron el precio a un nuevo mínimo, pero el mínimo más alto de AO muestra que los bajistas están perdiendo fuerza. A menudo, cuando la divergencia se completa, el AO también puede empezar a subir, incluso cuando el precio se mantiene estable o alcanza un nuevo mínimo, lo que proporciona más pruebas de un cambio. La envolvente contiene el movimiento del precio, y el hecho de que no se rompa decisivamente más allá de ella indica que el soporte se mantuvo. Según las pruebas realizadas, este patrón también parece avanzar de forma rentable, aunque de manera irregular. Su informe se presenta a continuación:

r2


Cruce de la línea cero de AO y retroceso a la línea media de la envolvente

El patrón 3 es una reanudación de la tendencia, también conocida como una configuración del tipo "comprar en la caída/vender en la subida". Combina el cambio de impulso a través de la línea cero del AO con un retroceso del precio hacia una media móvil clave, la línea media de la envolvente. En la versión alcista, el Awesome Oscillator cruza de debajo de cero a encima de cero, lo que indica un cambio de impulso de negativo a positivo. Los compradores están tomando el control. Casi al mismo tiempo, el precio, que había estado en retroceso, encuentra soporte en la línea media del rango o cerca de ella, siendo la línea media la media móvil principal del canal.

Básicamente, el precio está volviendo a su media, la línea media, dentro de una tendencia alcista y, al hacerlo, el AO cruza por encima de cero, lo que indica que lo más probable es que el retroceso esté terminando y que el impulso alcista esté de vuelta. Esto da, por lo tanto, una señal de "comprar en la caída" en la línea media de soporte dinámico. Implementamos este patrón en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 3.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_3(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X()) - AO(X() + 1) > AO(X() + 1) - AO(X() + 2) &&
      AO(X() + 1) > AO(X() + 2) &&
      AO(X() + 2) > 0.0 &&
      Close(X() + 1) < Envelopes_Up(X() + 1) &&
      Close(X()) > Envelopes_Up(X())
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X() + 1) - AO(X()) > AO(X() + 2) - AO(X() + 1) &&
      AO(X() + 2) > AO(X() + 1) &&
      AO(X() + 2) < 0.0 &&
      Close(X() + 1) > Envelopes_Lo(X() + 1) &&
      Close(X()) < Envelopes_Lo(X())
   )
   {  return(true);
   }
   return(false);
}

Con una configuración bajista, AO cruza por debajo de cero, ya que el impulso y las tendencias se están volviendo bajistas. Esto sucede justo cuando el precio sube hacia el centro del rango desde abajo. La línea media actúa como una resistencia dinámica. Esto sugiere una entrada en corto en un repunte que se está produciendo en una tendencia bajista. Vender en caso de rebote hacia la media. De este modo, capturamos entradas clásicas que siguen tendencias con este patrón. La entrada se realiza en la dirección de la tendencia general, tras un pequeño movimiento en contra de la tendencia.

En una tendencia establecida, el precio normalmente fluctúa alrededor de esta media móvil: sube por encima de ella en una tendencia alcista y luego desciende de nuevo hacia ella, etc. Cuando el precio retrocede hasta una línea media ascendente y se mantiene ahí, suele ser una buena zona de entrada para la progresión de la tendencia. Mientras tanto, la línea cero de AO actúa como un claro separador entre el impulso alcista y el bajista.

Así pues, una situación determinada podría presentar al mercado en un movimiento alcista, con el precio generalmente por encima de la línea media y el AO por encima de cero. Si luego tenemos una pequeña corrección y el AO cae por debajo de cero, lo que indica un ligero impulso bajista, y también el precio cae desde por encima de la línea media hasta tocarla. Si el AO vuelve a cruzar por encima de cero, eso indicaría que el impulso se está realineando con la tendencia predominante y serviría como señal para volver a entrar en el mercado. Nuestras pruebas con este patrón, al igual que las tres anteriores, también muestran un avance exitoso. Su informe se presenta a continuación:

r3


Compresión de volatilidad y sesgo de ruptura de AO

El patrón 4 aprovecha una contracción de la volatilidad dentro del canal del indicador Envelopes. A menudo se denomina «squeeze»; precede a una ruptura, mientras que el AO ofrece una indicación sobre la dirección probable que tomará dicha ruptura. Con este patrón, las bandas envolventes se estrechan sustancialmente, lo que presagia un período de baja volatilidad o consolidación. En este contexto, observamos que las bandas superior e inferior casi se estrechan entre sí, o simplemente se aplanan. Esto también apunta a una fase de mercado tranquila en la que los rangos de precios se están estrechando. En esta compresión, se monitoriza el AO para detectar un cambio o sesgo gradual. Esto es importante porque el AO podría estar rondando la línea cero mientras asciende lentamente desde un punto ligeramente por debajo de cero hacia un terreno alcista, lo que indicaría una tendencia alcista o viceversa.

En una configuración alcista, es posible que veas que AO fluctúa dentro de un rango pequeño, dado que el precio está limitado a dicho rango, pero incluso en estas situaciones, el histograma de AO a menudo puede tener una tendencia a subir ligeramente. Esto se puede observar en el hecho de que el AO pasa más tiempo en las barras verdes cortas que en las rojas. Esta sutil acumulación de impulso sugiere que, si la volatilidad aumenta, en el extremo de la compresión, la ruptura podría ser al alza. Implementamos el patrón 4 de la siguiente manera en MQL5:

//+------------------------------------------------------------------+
//| Check for Pattern 4.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_4(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X() + 2) > AO(X() + 1) &&
      AO(X() + 1) < AO(X()) &&
      AO(X() + 1) > 0.0 &&
      Close(X() + 2) <= Envelopes_Mid(X() + 2) &&
      Close(X() + 2) >= Envelopes_Lo(X() + 2) &&
      Close(X() + 1) <= Envelopes_Mid(X() + 1) &&
      Close(X() + 1) >= Envelopes_Lo(X() + 1) &&
      Close(X()) <= Envelopes_Mid(X()) &&
      Close(X()) >= Envelopes_Lo(X())
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X() + 2) > AO(X() + 1) &&
      AO(X() + 1) < AO(X()) &&
      AO(X() + 1) > 0.0 &&
      Close(X() + 2) >= Envelopes_Mid(X() + 2) &&
      Close(X() + 2) <= Envelopes_Up(X() + 2) &&
      Close(X() + 1) >= Envelopes_Mid(X() + 1) &&
      Close(X() + 1) <= Envelopes_Up(X() + 1) &&
      Close(X()) >= Envelopes_Mid(X()) &&
      Close(X()) <= Envelopes_Up(X())
   )
   {  return(true);
   }
   return(false);
}

De igual modo, una compresión con sesgo bajista también provocaría que el AO retrocediera gradualmente entre pequeñas fluctuaciones. Esto puede presentar una ligera serie de máximos más bajos en el histograma, mientras que cerca de cero, lo que sugiere que el camino de menor resistencia es hacia abajo una vez que se produce una ruptura. Este patrón es similar al famoso patrón de compresión de las Bandas de Bollinger, con la diferencia de que estamos utilizando las Envelopes con el AO.

Este estrechamiento suele implicar que la media móvil no se está desplazando mucho y que los máximos y mínimos de precios recientes no se desvían significativamente de ella: una consolidación clásica. La contracción de las bandas de la envolvente proporciona una señal visual, algo que es fácil de detectar y, de hecho, de cuantificar. Por ejemplo, medir la distancia porcentual entre las bandas en relación con el promedio puede proporcionarnos una métrica.

Por lo tanto, tenemos claridad cuando el patrón está "activado". Sin embargo, los períodos de baja volatilidad suelen coincidir con períodos de poca atención por parte de muchos operadores. Estar alerta durante estos momentos ante el sesgo de AO puede, por lo tanto, darte una "ventaja sobre la multitud" que normalmente reacciona una vez que la ruptura se vuelve evidente. Sin embargo, al probar este patrón, nos encontramos con nuestro primer patrón de señal cuyo avance es cuestionable. No obstante, se proporciona a continuación:

r4


Impulso extremo AO con envolvente en expansión

El patrón 5 se centra en las tendencias subyacentes más potentes, donde el impulso es extremo. Se caracteriza por el hecho de que el AO se mantiene en valores muy altos o muy bajos durante un período prolongado. Esto puede servir como indicio de una presión persistente de compra o venta. Mientras esto sucede con el AO, las envolventes también comienzan a ensancharse y a tener una pendiente más pronunciada. Esto confirma un fuerte movimiento en la dirección del mercado.

En la señal alcista del patrón 5, el AO se mantiene por encima del límite cero en un nivel elevado. Esto suele ocurrir por encima de los picos recientes, lo que significa que se limita a territorio positivo. Así que esto tendría el aspecto de un AO imponente y totalmente verde. Simultáneamente, se observaría que la banda superior de la envolvente se inclina bruscamente hacia arriba. En el gráfico, puede parecer que cada nueva barra de precio está empujando la banda superior hacia arriba, lo que significa que el rango se está ajustando a precios más altos.

En algunas implementaciones de este patrón, la "expansión de la envolvente" podría significar que, una vez que el seguimiento de la envolvente utiliza medidas porcentuales, la distancia entre las bandas y el precio aumentaría aunque el porcentaje sea relativamente constante. Lo que hay que tener en cuenta visualmente es que el canal apunte hacia arriba, de forma decidida, y que no esté plano. En este diseño, donde AO está por encima de un umbral determinado, la envolvente apunta hacia arriba, lo que indicaría una señal de compra de continuación. Esta tendencia tendría una fuerte tracción y probablemente seguiría impulsando los precios al alza. Implementamos este patrón en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 5.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_5(ENUM_POSITION_TYPE T)
{  vector _last = AO_Last3(X());
   if
   (
      T == POSITION_TYPE_BUY &&
      _last[0] < 0.0 &&
      _last[2] < 0.0 &&
      _last[0] > _last[2] &&
      Low(X()) < Low(X() + 1) &&
      Envelopes_Up(X() + 1) - Envelopes_Lo(X() + 1) > Envelopes_Up(X()) - Envelopes_Lo(X())
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      _last[0] > 0.0 &&
      _last[2] > 0.0 &&
      _last[0] < _last[2] &&
      High(X()) > High(X() + 1) &&
      Envelopes_Up(X() + 1) - Envelopes_Lo(X() + 1) > Envelopes_Up(X()) - Envelopes_Lo(X())
   )
   {  return(true);
   }
   return(false);
}

La contraparte bajista se reconoce cuando el AO permanece profundamente negativo, donde se aprecian varias barras rojas en el histograma y estas se encuentran suficientemente por debajo del límite cero. Esto se combina con una inclinación claramente bajista de la envolvente, lo que significa que existe un impulso de venta sostenido para una continuación de la tendencia bajista. Este patrón señala esencialmente los momentos en que el mercado se encuentra en una tendencia extrema, como una subida vertiginosa o una venta masiva. Dado que la banda superior de la envolvente sigue alcanzando nuevos máximos, y la banda inferior la sigue de cerca, puede interpretarse como que "el precio sigue la trayectoria de la banda".

Varias estrategias consideran que un mercado está en tendencia cuando el precio se mantiene cerca de la banda superior de Bollinger o, en este caso, de las Envelopes; aquí se trata de un concepto similar, aunque necesitamos que el AO confirme ese impulso extraordinario. En la práctica, el patrón 5 puede aparecer después de cierta consolidación del mercado, posiblemente después del patrón 4 o del patrón 1. A continuación se presentan los resultados de nuestras pruebas para este patrón, y este también pudo avanzar de forma rentable:

r5


Doble suelo/techo con doble pico del AO

Nuestro séptimo patrón, el patrón 6, combina un doble fondo o un doble techo en el límite de la envolvente, con un novedoso patrón AO, comúnmente conocido como doble pico. Para nuestro patrón alcista, imaginemos que el precio está en descenso, encuentra soporte en el límite inferior, rebota y luego vuelve a probar la banda inferior formando un doble suelo con perfil en W. Los dos mínimos estarían aproximadamente al mismo nivel en la zona del límite inferior de la envolvente, una zona de soporte, lo que indica que se mantuvo en dos ocasiones. En este proceso, el AO formaría simultáneamente una figura de doble pico alcista por debajo de su límite cero.

En la forma AO, el segundo valle sería más alto que el primero, lo que significa que está más cerca de cero. Más importante aún, el AO seguiría estando bajo cero y no habría habido ningún cruce entre los dos valles. Se considera que estos dos picos representan la formación de una base de impulso alcista, dada la disminución en la intensidad de la venta masiva. Implementamos esta oportunidad de reversión alcista en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 6.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_6(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X() + 2) > 0.0 &&
      AO(X() + 1) < 0.0 &&
      AO(X()) > 0.0 &&
      Close(X() + 2) > Envelopes_Lo(X() + 2) &&
      Close(X() + 1) <= Envelopes_Lo(X() + 1) &&
      Close(X()) > Envelopes_Lo(X())
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X() + 2) < 0.0 &&
      AO(X() + 1) > 0.0 &&
      AO(X()) < 0.0 &&
      Close(X() + 2) < Envelopes_Up(X() + 2) &&
      Close(X() + 1) >= Envelopes_Up(X() + 1) &&
      Close(X()) < Envelopes_Up(X())
   )
   {  return(true);
   }
   return(false);
}

El equivalente bajista de este patrón es un doble techo, en forma de M, en la envolvente superior. El precio alcanza la banda superior, retrocede y luego la vuelve a probar, formando un máximo que es casi idéntico. Al mismo tiempo, AO mostraría un doble pico bajista por encima de cero sin que se produzca un cruce entre los picos y siendo el segundo pico inferior al primero. Esto indica una disminución de la presión compradora y sienta las bases para una caída del precio.

El patrón Pattern-6, en esencia, combina patrones gráficos clásicos con la confirmación de osciladores. La presencia de un doble fondo en un soporte conocido, como la banda inferior de la envolvente, sugiere que el nivel está "defendido". Por sí solo, el AO-Twin-Peaks es una señal establecida de Bill Williams para su señal de reversión. La envolvente aporta contexto al mostrar que esos mínimos/máximos se produjeron en una banda extrema del precio, lo que añade validez a la idea de que el soporte/resistencia no fue arbitrario y constituye un punto de inflexión cuando el rango está limitado.

Por lo general, uno tiende a entrar en una ruptura del cuello del doble fondo, el pico entre los dos mínimos o después del segundo fondo, una vez que se dan condiciones como que el AO se vuelva verde. El stop-loss se sitúa, naturalmente, justo por debajo de los mínimos del doble suelo para las posiciones largas, o justo por encima de los máximos del doble techo para las posiciones cortas. Por lo tanto, el riesgo localizado es pequeño en comparación con la recompensa potencial, que puede obtenerse al moverse al extremo opuesto de la envolvente. Las pruebas realizadas con este patrón no arrojaron un número suficiente de operaciones en condiciones similares a las de los otros patrones que utilizan el símbolo USD/JPY, en un marco temporal de 30 minutos, durante el mismo período de 2 años. El patrón de entrada es demasiado restrictivo, lo que podría significar que es más adecuado para plazos aún más cortos. El informe se encuentra a continuación:

r6


Fuerte recuperación del AO tras la sobreventa + Ruptura de la envolvente

El patrón 7 detecta movimientos de reversión explosivos que se producen después de un período de impulso extremo en una dirección determinada. Esto ocurre cuando el indicador AO muestra un cambio brusco y repentino, pasando de una condición de sobreventa profunda a una lectura alcista, junto con un aumento repentino del precio por encima de la banda superior de la envolvente. Todo esto ocurre cuando la señal indica un cambio de tendencia alcista. En la práctica, esta configuración alcista presentaría un AO muy bajo como señal de un impulso bajista extremo después de una venta masiva importante. A continuación, en unas pocas barras, el AO cruza el umbral cero y se vuelve positivo.

Esto pone de manifiesto un cambio drástico en la dinámica del mercado: los vendedores pasaron del control total a un colapso repentino, perdiendo terreno frente a los compradores. En ese mismo caso, el precio que venía muy presionado a la baja, salta y cierra por encima de la envolvente, fuera del canal, lo que indicaría una ruptura alcista decisiva. Esta situación suele producirse gracias a un factor desencadenante, que normalmente es un evento de noticias. Implementamos este patrón en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 7.                                             \
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_7(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X() + 2) > 0.0 &&
      AO(X() + 1) > AO(X() + 2) &&
      AO(X()) > AO(X() + 1) &&
      Close(X() + 2) <= Envelopes_Lo(X() + 2) &&
      Close(X() + 1) > Envelopes_Lo(X() + 1) &&
      Close(X()) > Close(X() + 1)
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X() + 2) < 0.0 &&
      AO(X() + 1) < AO(X() + 2) &&
      AO(X()) < AO(X() + 1) &&
      Close(X() + 2) >= Envelopes_Up(X() + 2) &&
      Close(X() + 1) < Envelopes_Up(X() + 1) &&
      Close(X()) < Close(X() + 1)
   )
   {  return(true);
   }
   return(false);
}

La versión bajista de este patrón es la inversa, con AO pasando bruscamente de sobrecompra a valores negativos en un corto período de tiempo, mientras que el precio cae por debajo de la banda de envolvente inferior. Esto inicia una reversión de la ruptura a la baja. Esta formación, en esencia, captura una inversión en forma de V. Se produce cuando los mercados que mostraban una tendencia o se movían con fuerza en una dirección, capitulan y giran bruscamente en la dirección opuesta. El AO cuantifica el cambio de momento.

Este patrón-7 básicamente supone que el impulso extremo anterior no era duradero, y que ahora se revierte como resultado de haber sido desencadenado por algo tangible. Sin este factor desencadenante, lo único que se observaría sería un repunte de la volatilidad en una tendencia alcista que aún se mantuviera intacta, como, por ejemplo, un retroceso volátil. Por lo tanto, el contexto es muy importante. Por lo tanto, conviene estar atento a rallies sobreextendidos o a movimientos respaldados por noticias. Nuestro patrón-7 parece funcionar tan bien como el patrón-1 en las pruebas, y el avance gradual resulta significativo. A continuación presentamos el informe correspondiente:

r7

A continuación se muestra una representación gráfica de una señal alcista para el patrón 7. Mostramos estos patrones gráficos para aquellos que obtuvieron los mejores resultados en el análisis walk-forward. No obstante, dado que se adjunta el código fuente del asesor experto, el lector puede estudiarlos con mayor detalle en el gráfico generado tras el backtest.

p7 


Retroceso posterior a la ruptura hacia la envolvente con confirmación del AO

Nuestro penúltimo patrón de señal es una estrategia de "retroceso" o de "retroceso tras ruptura". Entra en juego justo después de que se produzca una fuerte ruptura más allá de los límites, una vez que el precio retrocede momentáneamente para probar la banda de ruptura. Mientras tanto, el AO se mantendría en un nivel extremo, lo que indica que el impulso dominante aún permanece intacto. En una configuración alcista, se trata de una situación en la que el precio rompió por encima del límite superior en un repunte, posiblemente debido a una tendencia o a una situación de patrón 1 o patrón 7. Una vez que se produce el repunte inicial, el precio retrocede ligeramente y, lo que es crucial, el precio mínimo de este retroceso se mantiene por encima de la línea superior del rango. En otras palabras, el precio no vuelve a entrar en la envolvente, sino que solo roza la banda superior, manteniéndose ligeramente por encima de ella.

Esto supone, en la práctica, un retroceso hasta el nuevo nivel de soporte, que es la línea superior. En este throwback (retroceso de comprobación), el AO se mantiene alcista, por encima de cero y relativamente alto, ya que el impulso no se ha disipado, sino que solo se ha detenido. Es posible que el índice AO experimente un ligero descenso debido al pequeño retroceso, pero debería mantenerse firmemente en positivo. En estas condiciones, el patrón señala una entrada de bajo riesgo en una tendencia alcista; la ruptura queda validada dado que el precio se mantiene por encima de la envolvente, y el AO indica un impulso alcista. Este es nuestro código fuente MQL5 para este patrón:

//+------------------------------------------------------------------+
//| Check for Pattern 8.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_8(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X() + 2) > 0.0 &&
      AO(X() + 1) > AO(X() + 2) &&
      AO(X()) > AO(X() + 1) &&
      Close(X() + 2) > Envelopes_Up(X() + 2) &&
      Close(X() + 1) > Close(X() + 2) &&
      Close(X()) > Close(X() + 1)
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X() + 2) < 0.0 &&
      AO(X() + 1) < AO(X() + 2) &&
      AO(X()) < AO(X() + 1) &&
      Close(X() + 2) < Envelopes_Lo(X() + 2) &&
      Close(X() + 1) < Close(X() + 2) &&
      Close(X()) < Close(X() + 1)
   )
   {  return(true);
   }
   return(false);
}

La versión bajista prevé una ruptura del precio por debajo del límite inferior, seguida de un retroceso al alza, con el máximo del rebote manteniéndose por debajo de la banda inferior. La banda inferior actúa, por lo tanto, como una resistencia. Dado que el indicador AO se mantiene negativo, la situación ofrece una oportunidad para vender en corto el "rebote de alivio" con cierta confianza en que la tendencia bajista continuará. El Patrón 8, durante las pruebas, se convierte en el primer patrón que no logra mantener la rentabilidad en el análisis walk-forward. Su informe se presenta a continuación:

r8


Inclinación de la tendencia de la envolvente con desplazamiento de la línea base de AO

El patrón final se centra en detectar el inicio de una nueva tendencia sostenida al combinar un cambio claro en la pendiente de la envolvente con un cambio confirmatorio en el impulso base de AO. En un escenario alcista, el canal envolvente que antes era plano comenzaría a inclinarse bruscamente hacia arriba, lo que indicaría que la acción del precio se ha transformado en alcista. Esto se suele observar desde los primeros máximos de la banda superior o de la línea media. Para ilustrarlo, cada nueva barra muestra que la envolvente superior es más alta que la anterior durante varias barras consecutivas. Si bien la envolvente indica una inclinación alcista descubierta, el AO también sube por encima de su límite cero y se mantiene significativamente por encima de él.

En la práctica, esto implica que el AO puede haber estado oscilando alrededor de cero o por debajo en el rango anterior, pero ahora se ha vuelto decididamente positivo como resultado de una presión compradora sostenida. Muchas veces se puede ver que AO está por encima de cero y permanece en verde durante algunas barras. En conjunto, estas condiciones constituyen una potente señal de compra de tendencia, ya que es muy probable que el mercado haya salido de su fase de altibajos y oscilaciones y se encuentre ahora en una tendencia alcista ordenada. Codificamos este patrón en MQL5 de la siguiente manera:

//+------------------------------------------------------------------+
//| Check for Pattern 9.                                             |
//+------------------------------------------------------------------+
bool CSignalAO_Envelopes::IsPattern_9(ENUM_POSITION_TYPE T)
{  if
   (
      T == POSITION_TYPE_BUY &&
      AO(X() + 2) > AO(X() + 1) &&
      AO(X() + 1) > AO(X()) &&
      AO(X()) > 0.0 &&
      Close(X() + 2) > Envelopes_Mid(X() + 2) &&
      Close(X() + 1) <= Envelopes_Mid(X() + 1) &&
      Close(X()) > Envelopes_Mid(X())
   )
   {  return(true);
   }
   else if
   (
      T == POSITION_TYPE_SELL &&
      AO(X() + 2) < AO(X() + 1) &&
      AO(X() + 1) < AO(X()) &&
      AO(X()) < 0.0 &&
      Close(X() + 2) < Envelopes_Mid(X() + 2) &&
      Close(X() + 1) >= Envelopes_Mid(X() + 1) &&
      Close(X()) < Envelopes_Mid(X())
   )
   {  return(true);
   }
   return(false);
}

El reflejo bajista de esto es que la envolvente gira hacia abajo, con la banda inferior descendiendo gradualmente, barra por barra. El indicador AO cae simultáneamente por debajo de cero y se mantiene por debajo de cero como señal de que se está formando una nueva tendencia bajista. Este patrón sirve como confirmación. No intenta captar los máximos o mínimos absolutos, como ocurre con el patrón 7 o el patrón 6. Su función es simplemente intentar detectar los cambios sutiles que permiten pasar de un mercado lateral o débil a uno tendencial. Nuestras pruebas de este patrón durante el período de 2 años en el marco temporal de 30 minutos del USD/JPY tampoco arrojaron resultados rentables, como sí lo habíamos hecho en el patrón 8 anterior. El informe se presenta a continuación:

r9


Conclusión

En este artículo hemos analizado otra combinación de indicadores: el oscilador Awesome y los canales de envolvente. Nuestro análisis se basa en un período de un año para la formación/optimización y un año de pruebas walk-forward. Como siempre se ha recalcado en estos artículos, este periodo de prueba es limitado y es muy importante que el lector actúe con la debida diligencia al explorar diferentes tipos de mercados antes de que estas ideas puedan utilizarse en un entorno real. Continuaremos este artículo con otro en el que analizaremos si los dos patrones, 8 y 9, que no lograron superar el análisis walk-forward, pueden mejorar sus resultados mediante aprendizaje supervisado.

Nombre Descripción
WZ-75.mq5 Asesor experto creado con el asistente, cuyo encabezado muestra los archivos incluidos.
SignalWZ-75.mqh Archivo de clase de señal personalizado para su uso en el asistente de ensamblaje.

Estos archivos adjuntos están pensados para utilizarse en el Asistente de MQL5 con el fin de crear un asesor experto. Aquí hay guías para los nuevos lectores.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/18842

Archivos adjuntos |
WZ-75.mq5 (8.06 KB)
SignalWZ_75.mqh (23.89 KB)
Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 9): Cruce de dos medias móviles Desarrollo de asesores expertos autooptimizables en MQL5 (Parte 9): Cruce de dos medias móviles
Este artículo describe el diseño de una estrategia de cruce de medias móviles dobles que utiliza señales de un marco temporal superior (D1) para orientar las entradas en un marco temporal inferior (M15), calculándose los niveles de stop-loss a partir de un marco temporal de riesgo intermedio (H4). Introduce constantes del sistema, enumeraciones personalizadas y la lógica para los modos de seguimiento de tendencias y de retorno a la media, al tiempo que hace hincapié en la modularidad y en la optimización futura mediante un algoritmo genético. Este enfoque permite establecer condiciones flexibles de entrada y salida, con el objetivo de reducir el retraso de la señal y mejorar la sincronización de las operaciones, alineando las entradas en los marcos temporales más cortos con las tendencias de los marcos temporales más largos.
Algoritmo de optimización basado en los sueños — Dream Optimization Algorithm (DOA) Algoritmo de optimización basado en los sueños — Dream Optimization Algorithm (DOA)
Un algoritmo de optimización poblacional inspirado en un fenómeno controvertido y poco estudiado: el fenómeno de los sueños humanos. Grupos de agentes con distintas «memorias», modulación cosenoidal del movimiento y una distribución de fases inusual de 99/1: descubra cómo estas características influyen en la eficacia de la optimización de sus estrategias de trading.
Herramientas de trading de MQL5 (Parte 5): Creación de una cinta de cotizaciones deslizante para el seguimiento en tiempo real de símbolos Herramientas de trading de MQL5 (Parte 5): Creación de una cinta de cotizaciones deslizante para el seguimiento en tiempo real de símbolos
En este artículo, desarrollamos una cinta de cotizaciones deslizante en MQL5 para monitorizar varios símbolos en tiempo real, mostrando los precio Bid (oferta), los spreads y las variaciones porcentuales diarias mediante efectos de desplazamiento. Implementamos fuentes, colores y velocidades de desplazamiento personalizables para resaltar eficazmente los movimientos y las tendencias de los precios.
Redes neuronales en el trading: Modelo de consultas temporales (TQNet) Redes neuronales en el trading: Modelo de consultas temporales (TQNet)
El framework TQNet abre nuevas posibilidades en el modelado y la previsión de series temporales financieras, combinando modularidad, flexibilidad y un alto rendimiento. En el artículo se expone la posibilidad de implementar mecanismos complejos para trabajar con correlaciones globales, incluyendo métodos avanzados de inicialización de parámetros.