Características del Wizard MQL5 que debe conocer (Parte 73): Uso de patrones de Ichimoku y del ADX-Wilder
Introducción
En este artículo se utilizan el indicador Ichimoku Kinko Hyo (Ichimoku) y el oscilador ADX-Wilder (ADX) como pareja para identificar niveles de soporte y resistencia, así como tendencias. El Ichimoku es, sin duda, un sistema polifacético y bastante versátil. Puede proporcionar algo más que simples niveles de soporte/resistencia. Sin embargo, por ahora nos limitaremos a S/R. Las combinaciones de indicadores, especialmente cuando son complementarias, tienen el potencial de generar señales de entrada más precisas y perspicaces para los Asesores Expertos. Como de costumbre, analizamos 10 patrones de señal de este par de indicadores. Probamos estos 10 patrones de señales, cada uno con un índice asignado, uno por uno, guiándonos por estas reglas;
La indexación va de 0 a 9, lo que nos permite calcular fácilmente el valor del mapa para su uso exclusivo por parte del asesor experto. Por ejemplo, si un patrón tiene el índice 1, entonces tenemos que establecer el parámetro 'PatternsUsed' en 2 elevado a la potencia 1, lo que da como resultado 2. Si el índice es 4, entonces esto es 2 elevado a la potencia 4, que da como resultado 16, y así sucesivamente. El valor máximo que se le puede asignar a este parámetro, de forma significativa, es 1023, ya que solo tenemos 10 parámetros. Cualquier número entre 0 y 1023 que no sea un exponente puro de 2 representaría una combinación de más de uno de estos 10 patrones.
En artículos anteriores hemos argumentado por qué el entrenamiento o la optimización con múltiples señales están destinados a ser inútiles a pesar de los resultados positivos que suelen presentar en las pruebas. Esto se debe a que, cuando se activa más de una señal, tienden a cancelar inadvertidamente las operaciones de las demás en momentos que resultan convenientes para maximizar las ganancias en ese período de prueba limitado. Se podrían realizar pruebas en periodos de tiempo más amplios para solucionar este problema, pero dado que este artículo se centra en un periodo de prueba de un año, eso no sería aplicable para nuestros propósitos.
El Ichimoku
Por definición, el Ichimoku es un indicador integral que reúne varios elementos para evaluar la dirección de la tendencia, el impulso y los niveles de soporte y resistencia. Este indicador, cuyo nombre se traduce como sistema todo en uno, busca ofrecer una visión integral de la acción del precio y se utiliza con frecuencia en estrategias de seguimiento de tendencias. Consta de cinco búferes. El Tenkan-sen, el Kijun-sen, el Senkou-Span-A, el Senkou-Span-B y, finalmente, el Chikou-Span. Además de estos indicadores, también se suele hablar de la «nube Kumo», formada por las dos líneas Senkou A y B. En principio, esta nube puede servir como nivel de soporte y resistencia, así como indicador de la fuerza de la tendencia, en función de su grosor.
Los datos de entrada necesarios para calcular sus cinco búferes son tres, y normalmente se les asignan los valores 9, 26 y 52. En teoría, estos valores se pueden personalizar para distintos mercados, pero probablemente sea mejor dejar estos períodos como están y buscar ajustar otros atributos del sistema. Con este indicador, se pueden inferir multitud de señales, entre las que se incluyen los cruces del Tenkan con el Kijun, así como las confirmaciones del Chikou, como veremos más adelante. Por lo tanto, el Ichimoku es versátil y puede aplicarse a una variedad de activos, desde acciones y divisas hasta criptomonedas, en diversos marcos temporales.
Analicemos ahora la fórmula subyacente de estos cinco búferes, comenzando por el Tenkan-sen. Se determina de la siguiente manera:
= (Máximo más alto + Mínimo más bajo) / 2
Donde:
- El máximo es el precio más alto registrado en los últimos 9 períodos.
- El mínimo más bajo es, de manera similar, el precio más bajo de los últimos 9.
Su propósito podría considerarse como el de un indicador de tendencia a corto plazo, sensible a los cambios de precios y que, por lo tanto, puede tomar rápidamente el pulso del mercado sobre movimientos a corto plazo. El Kijun-sen se calcula de forma similar:
= (Máximo más alto + Mínimo más bajo) / 2
Donde:
- El precio máximo es el precio máximo en 26 períodos.
- El mínimo más bajo es también el precio mínimo de los últimos 26 períodos.
Su propósito es servir como barómetro de tendencias a medio plazo y también como indicador de soporte y resistencia. A continuación tenemos el Senkou Span A. La fórmula de este buffer es la siguiente:
= (Tenkan-sen + Kijun-sen) / 2
Donde:
- Tenkan-sen y Kijun-sen son la línea de conversión y la línea base de los buffers, cuyas fórmulas se han presentado anteriormente.
El propósito de esta zona de amortiguación es principalmente formar un borde de la nube de Kumo, una característica importante de soporte/resistencia del Ichimoku. A continuación, tenemos el tramo B del Senkou. Este también es similar al Tenkan-sen, con diferencias que radican en la duración del período utilizado:
= (Máximo más alto + Mínimo más bajo) / 2
Donde:
- El precio máximo es el precio máximo en 52 períodos.
- El mínimo más bajo es también el precio más bajo en 52 períodos.
Su propósito es complementar el tramo A de Senkou formando el segundo borde de la nube de Kumo. Sus periodos de indicador más largos también la convierten en un nivel de soporte/resistencia a largo plazo. Finalmente, el Chikou Span, el búfer final, se define de la siguiente manera:
= Cierre del período actual
Donde:
- El precio de cierre se representa gráficamente 26 períodos atrás.
El objetivo de Chikou es confirmar las tendencias comparando los precios pasados con la evolución actual. También cabe destacar, y como ya se mencionó anteriormente, la nube de Kumo. Normalmente, esta es la zona comprendida entre el span A y el span B de Senkou. Cuando el span A es mayor que el B, tenemos una nube Kumo alcista, y cuando ocurre lo contrario, A < B, tenemos una nube bajista. Kumo ayuda a visualizar la fuerza de la tendencia, así como los niveles de soporte y resistencia.
El ADX-Wilder
Nuestro segundo indicador para este artículo mide la fuerza de una tendencia predominante. No su dirección. Sin embargo, cuenta con dos indicadores adicionales, además del principal, que pueden utilizarse para evaluar el impulso alcista y bajista. Normalmente, el búfer principal de ADX tiene valores que van de 0 a 100. Sin embargo, rara vez supera el nivel de 25, por lo que, cuando lo hace, se considera una señal de una tendencia predominante fuerte. Cuando su valor es inferior a 20, esto es señal de una tendencia débil. Se trata de un indicador rezagado que suele utilizar 14 períodos de referencia en sus cálculos. Puede ser versátil en diversas clases de activos. Las señales podrían generarse secundariamente a partir de cruces de +DI/-DI al sugerir la dirección de la tendencia, con el búfer principal del ADX confirmando la fuerza de la tendencia.
El ADX Wilder genera 3 búferes, pero en realidad trabaja con hasta 6 búferes diferentes. Tenemos el movimiento direccional +DM y su correspondiente indicador direccional +DI, el movimiento direccional -DM y su indicador direccional -DI, el True Range (TR) y, finalmente, el búfer principal del ADX. Vamos a repasar las fórmulas de cada una. En primer lugar, tenemos el movimiento direccional positivo de DM:
= Máximo actual - Máximo anterior
Donde:
- El mínimo anterior debe ser mayor que el mínimo actual. Si no se cumple esta condición, su valor es cero.
Este indicador rastrea el movimiento alcista de los precios. El siguiente amortiguador que tenemos es el movimiento en dirección negativa. Esto viene dado por la fórmula:
= Mínimo anterior - Mínimo actual
Donde:
- El máximo actual está por encima del máximo anterior; de lo contrario, su valor es cero.
Este amortiguador mide el movimiento a la baja de los precios. Una vez definidos los movimientos direccionales, pasamos ahora al rango verdadero. Esto se obtiene mediante la siguiente fórmula sencilla:
= Máximo[(Máximo actual - Mínimo actual), |Máximo actual - Cierre anterior|, |Mínimo actual - Cierre anterior|]
Donde:
- Max es simplemente el valor máximo de las tres diferencias expresadas anteriormente.
El objetivo principal del rango real es medir la volatilidad de los precios. Una vez definidos los movimientos direccionales y el rango real, podemos pasar a analizar los búferes indicadores utilizados. El primero de ellos es el indicador direccional positivo (+DI). Y esto viene dado por la siguiente fórmula:
= (Suavizado +DM / TR suavizado) × 100
Donde:
- El +DM suavizado es la media móvil exponencial del movimiento direccional positivo definido anteriormente.
- El TR suavizado es la media móvil exponencial del rango real.
El propósito del +DI es indicar la fuerza alcista. También tenemos el -DM que se define mediante la siguiente fórmula:
= (−DM suavizado / TR suavizado) × 100
Donde:
- El -DM suavizado es también la media móvil exponencial del movimiento direccional negativo, cuya fórmula se comparte anteriormente.
- El TR suavizado es también la media móvil exponencial del rango real.
Los períodos utilizados para los búferes de indicadores -DM y +DM suelen ser de 14. El propósito de -DI es medir la fuerza bajista. Una vez definidos estos dos búferes de indicadores, llegamos al búfer principal de ADX. Su fórmula es la siguiente:
= suavizado[(|+DI - -DI| / (+DI + -DI)) × 100]
Donde:
- El suavizado consiste en promediar los valores de salida de la fórmula, de forma exponencial, en una ventana de 14 períodos.
- El +DI es el indicador de amortiguación alcista que acabamos de definir anteriormente y NO el movimiento direccional positivo.
- El -DI también es el indicador bajista que acabamos de definir.
- El valor sin suavizar también se conoce como DX.
El objetivo del DX suavizado, también conocido como ADX, es cuantificar la fuerza de la tendencia. Una vez presentados los dos indicadores, podemos pasar a analizar los 10 patrones que utilizamos en este artículo. Todas las pruebas se llevarán a cabo, como siempre, en el año 2023, y el año 2024 servirá como entorno de simulación y pruebas. Sin embargo, estamos utilizando el intervalo de tiempo de 30 minutos, en lugar de nuestro intervalo habitual de 4 horas, porque el indicador Ichimoku no emite suficientes señales en un año, nuestro período de prueba. Nuestro símbolo de prueba es GBPUSD.
El precio cruza el Senkou Span A con confirmación del ADX.
Nuestro patrón 0 es el primero que consideramos, como siempre, y el formato de nomenclatura utilizado es patrón-x, donde x es el índice del patrón, no su número de posición. Como se mencionó en la introducción anterior, hacemos hincapié en los índices porque ayudan a establecer los valores de los parámetros de entrada que nos permiten probar un patrón a la vez. La señal alcista para el patrón 0 se produce cuando el precio cruza por encima del Senkou span A, lo que marca una ruptura por encima de la nube Kumo. Normalmente, esto debería estar respaldado por una lectura ADX sólida de al menos 25. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 1) < Ichimoku_SenkouSpanA(X() + 1) && Close(X()) > Ichimoku_SenkouSpanA(X()) && ADX(X()) >= 25.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 1) > Ichimoku_SenkouSpanA(X() + 1) && Close(X()) < Ichimoku_SenkouSpanA(X()) && ADX(X()) >= 25.0) { return(true); } return(false); }
El patrón bajista también se define cuando el precio cruza el Senkou span A y cierra por debajo de él. Esto indica una ruptura por debajo de la nube con una fuerte tendencia. La combinación de la ruptura de la nube Ichimoku y la confirmación de la fuerza de la tendencia del ADX hacen de esto una señal fiable. Debería funcionar mejor en un contexto de mercado con tendencia; las condiciones volátiles no son adecuadas para este patrón. Una prueba realizada durante el período de dos años comprendido entre 2023 y 2024, tras haber sido probada únicamente en 2023, nos proporciona el siguiente informe:

La prueba inicial realizada en el año 2023 arrojó resultados muy irregulares, aunque ligeramente rentables. Curiosamente, una estrategia de «walk forward» también genera un perfil de curva de rentabilidad similar; sin embargo, sigue siendo rentable. Las recomendaciones de buenas prácticas para este patrón podrían sugerir una confirmación en marcos temporales superiores para lograr una alineación de la tendencia antes de tomar una decisión. El requisito de que el ADX sea de al menos 25 es esencial para filtrar señales débiles. El stop-loss se puede establecer por debajo o por encima de la nube de Kumo para las operaciones de compra o venta, respectivamente. Es fundamental estar atento a las falsas rupturas.
Cruce entre Tenkan-Sen y Kijun-Sen con confirmación del ADX
Nuestro siguiente patrón se basa en dos cruces de medias móviles y una confirmación del ADX. Para los alcistas, cuando el Tenkan-Sen cruza el Kijun-Sen desde abajo para cerrar por encima, esto indica un cambio de impulso a corto plazo, hacia el alza. El ADX tendría que ser de al menos 20. Codificamos nuestra función de verificación en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_1(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Ichimoku_TenkanSen(X() + 1) < Ichimoku_KijunSen(X() + 1) && Ichimoku_TenkanSen(X()) > Ichimoku_KijunSen(X()) && ADX(X()) >= 20.0) { return(true); } else if(T == POSITION_TYPE_SELL && Ichimoku_TenkanSen(X() + 1) > Ichimoku_KijunSen(X() + 1) && Ichimoku_TenkanSen(X()) < Ichimoku_KijunSen(X()) && ADX(X()) >= 20.0) { return(true); } return(false); }
La señal bajista se produce cuando el Tenkan-Sen cruza el Kijun-Sen desde arriba y cierra por debajo de este, lo que indica un cambio hacia una tendencia bajista. En esencia, se trata de una señal temprana de reversión de la tendencia del Ichimoku que complementa al ADX para su confirmación. Un contexto de mercado adecuado sería al inicio de una tendencia o en puntos de giro fractales. Es probable que sea menos fiable en mercados con rangos de precios limitados. Una prueba realizada exclusivamente con este patrón nos proporciona el siguiente informe:

Este patrón claramente tenía dificultades para avanzar. Esto podría deberse al uso de precios objetivo ajustados y a la ausencia de órdenes de stop loss. Estos son parámetros que el lector puede ajustar o modificar para proporcionar diferentes configuraciones de negociación. Además, al utilizar este patrón, las operaciones deben ir en la dirección de la tendencia de marcos temporales superiores. El umbral de ADX de tan solo 20 tiene como objetivo filtrar los cruces débiles. La orden de stop-loss puede colocarse por debajo del Kijun-Sen para las compras y por encima para las ventas. La combinación con indicadores de volumen puede aumentar la confirmación.
Cruce de las líneas Senkou Span A y B con confirmación del ADX
El patrón 2 se basa en el cambio o cruce «Kumo». La señal alcista se produce cuando el Senkou Span A cruza por encima del Senkou Span B, lo que da lugar a la formación de una nube alcista. Este cambio debe producirse cuando el ADX sea de al menos 25. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Ichimoku_SenkouSpanA(X() + 1) < Ichimoku_SenkouSpanB(X() + 1) && Ichimoku_SenkouSpanA(X()) > Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 25.0) { return(true); } else if(T == POSITION_TYPE_SELL && Ichimoku_SenkouSpanA(X() + 1) > Ichimoku_SenkouSpanB(X() + 1) && Ichimoku_SenkouSpanA(X()) < Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 25.0) { return(true); } return(false); }
La señal bajista se produce cuando la línea Senkou A cruza la línea Senkou B desde arriba y cierra por debajo de ella. Esto indica un cambio hacia una perspectiva bajista. Se trata de un cambio de señal de tendencia a largo plazo, que también puede servir como confirmación de tendencia de respaldo. Quieres utilizar esta señal en mercados con tendencia si se practica swing trading. Los resultados de las pruebas se muestran a continuación:

El patrón 2 parece estar funcionando bien en un avance. Como siempre, esto se basa en un período de prueba limitado de tan solo un año, por lo que se espera que el lector realice pruebas independientes antes de que las ideas aquí presentadas puedan desarrollarse más a fondo. Para el patrón 2, la confirmación del cruce de nubes en marcos temporales superiores puede resultar útil. El umbral ADX 25 está diseñado para filtrar las señales débiles y es fundamental. La colocación del stop loss puede estar por debajo o por encima de la nube para las posiciones de compra o venta. Este patrón debe evitarse cuando la nube es estrecha.
Rebote o rechazo del precio en la nube con confirmación del ADX y el DI
El patrón 3 tiene en cuenta la evolución del precio en torno a la nube Kumo. La señal alcista se produce cuando el precio rebota en la parte superior del Kumo —que siempre es el Senkou-Span-A—, siempre que el ADX sea de al menos 25 y el índice direccional positivo sea mayor que el índice direccional negativo. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 2) > Close(X() + 1) && Close(X() + 1) < Close(X()) && Close(X() + 2) > Ichimoku_SenkouSpanA(X() + 2) && Close(X()) > Ichimoku_SenkouSpanA(X()) && Close(X() + 1) <= Ichimoku_SenkouSpanA(X() + 1) && ADX_Plus(X()) > ADX_Minus(X()) && ADX(X()) >= 25.0 ) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 2) < Close(X() + 1) && Close(X() + 1) > Close(X()) && Close(X() + 2) < Ichimoku_SenkouSpanA(X() + 2) && Close(X()) < Ichimoku_SenkouSpanA(X()) && Close(X() + 1) >= Ichimoku_SenkouSpanA(X() + 1) && ADX_Plus(X()) < ADX_Minus(X()) && ADX(X()) >= 25.0 ) { return(true); } return(false); }
La señal bajista se produce cuando el precio rechaza un mínimo de nube, que de nuevo sería el patrón Senkou-Span-A, en una formación en U. Además, el ADX sería de al menos 25 y el índice direccional negativo estaría por encima del índice direccional positivo. El patrón 3 es una señal clara de soporte y resistencia que, además, ofrece una confirmación de la tendencia. Es especialmente adecuado para mercados que pasan de una fase lateral a una fase tendencial, que pueden ser difíciles de detectar, por lo que realizamos varias comprobaciones de filtrado antes de que se pueda confirmar este patrón de señal. Las pruebas que hemos realizado con el patrón 3 nos proporcionan el siguiente informe:

Este patrón, algo parecido al patrón 2, también es capaz de lograr un avance positivo, tal y como se muestra arriba. Al aplicar el patrón 3, siempre es recomendable confirmar el rebote o el rechazo con patrones de velas como las «pin bars». La tendencia relativa del índice direccional positivo/negativo debe coincidir con la dirección de la tendencia del precio. El stop loss se puede colocar justo por debajo o por encima del Senkou-Span-B.
Chikou Span frente a Senkou Span A con confirmación del ADX
El patrón 4 incorpora el quinto buffer del indicador Ichimoku del Chikou-Span. Una señal alcista se produce cuando el Chikou Span se sitúa por encima del rango Senkou A. Como ya se mencionó en la introducción, el Chikou es un indicador rezagado, generalmente de 26 periodos. Desde la perspectiva de un programador, esto significa que al referirnos al búfer Chikou del indicador Ichimoku incorporado, necesitamos desplazar manualmente nuestra lectura de estos valores en 26; de lo contrario, obtendremos valores NaN. Entonces, con el Chikou por encima del tramo A, también necesitamos que el ADX esté por encima de 25. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_4(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Ichimoku_ChinkouSpan(X() + 26) > Ichimoku_SenkouSpanA(X()) && ADX(X()) >= 25.0 ) { return(true); } else if(T == POSITION_TYPE_SELL && Ichimoku_ChinkouSpan(X() + 26) < Ichimoku_SenkouSpanA(X()) && ADX(X()) >= 25.0 ) { return(true); } return(false); }
La señal bajista se produce cuando el Chikou se sitúa por debajo del Senkou Span A y el ADX sigue estando al menos en 25. En este caso, sin embargo, el Senkou Span A estaría por debajo del Senkou Span B; a diferencia de la señal alcista, donde estaría por encima del Senkou Span B. Esta señal es una confirmación tardía de la fuerza de la tendencia y es la más adecuada para confirmar las tendencias existentes. Nuestra prueba walk-forward es la siguiente:

El patrón 4 avanza claramente bien. Probablemente mejor incluso que los patrones 3 y 2. Sin embargo, al utilizarlo, la confirmación de tendencias podría ser una mejor aplicación que la señalización de entrada. También se puede combinar con otras señales Ichimoku, como el posicionamiento de la nube Kumo. La configuración del stop loss puede basarse en los puntos de inflexión recientes. El contexto de mercado adecuado para el patrón 4 es un mercado con tendencia definida, y los entornos volátiles no deben combinarse con esta señal. A modo de ilustración adicional, a continuación se muestra una representación de la señal del patrón alcista 4 en un gráfico.

Rebote/rechazo de precios en Tenkan-Sen con confirmación de ADX y DI.
Nuestro siguiente patrón usa la acción del precio en torno al Tenkan-Sen, en contraste con la nube Kumo que acabamos de analizar con el patrón anterior. Una señal alcista se produce cuando el precio rebota en el Tenkan-Sen, con el ADX al menos en el umbral de 25 y el índice direccional positivo también por encima del índice direccional negativo. En MQL5 implementamos esto de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 2) > Close(X() + 1) && Close(X() + 1) < Close(X()) && Close(X() + 2) > Ichimoku_TenkanSen(X() + 2) && Close(X()) > Ichimoku_TenkanSen(X()) && Close(X() + 1) <= Ichimoku_TenkanSen(X() + 1) && ADX_Plus(X()) > ADX_Minus(X()) && ADX(X()) >= 25.0 ) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 2) < Close(X() + 1) && Close(X() + 1) > Close(X()) && Close(X() + 2) < Ichimoku_TenkanSen(X() + 2) && Close(X()) < Ichimoku_TenkanSen(X()) && Close(X() + 1) >= Ichimoku_TenkanSen(X() + 1) && ADX_Plus(X()) < ADX_Minus(X()) && ADX(X()) >= 25.0 ) { return(true); } return(false); }
El patrón bajista se produce cuando el precio rechaza Tenkan-Sen como resistencia y el ADX también es de al menos 25. Los índices direccionales deben tener un búfer negativo mayor que el búfer positivo. Esta señal sirve para confirmar el impulso a corto plazo. Es eficaz cuando se utiliza en mercados con tendencia definida, especialmente en situaciones de retroceso. Nuestras pruebas walk-forward nos proporcionan el siguiente informe:

De todos los patrones de señal que hemos probado hasta ahora con esta combinación de indicadores, es claramente el patrón más flojo. No supera en absoluto la prueba walk-forward. Una posible mejora que podría implementarse sería la confirmación mediante velas japonesas de sus señales. Ya se está comprobando la alineación del índice direccional; sin embargo, se podrían añadir umbrales como medida de verificación antes de confirmar una señal. También se puede añadir una orden de stop loss, ya que estamos realizando pruebas sin ella. Esto puede estar por debajo o por encima del Tenkan-sen para las órdenes de compra/venta.
El precio cruza la línea Kijun-Sen con confirmación de ADX y DI.
El siguiente patrón, el patrón 6, implica cruces de precios con el Kijun-Sen. La señal alcista se produce cuando el precio cruza el Kijun-Sen desde abajo y cierra por encima de él. Además, el índice direccional positivo sería mayor que el negativo, mientras que el ADX es al menos 25. En MQL5 implementamos esto de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 6. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_6(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 1) < Ichimoku_KijunSen(X() + 1) && Close(X()) > Ichimoku_KijunSen(X()) && ADX_Plus(X()) > ADX_Minus(X()) && ADX(X()) >= 25.0) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 1) > Ichimoku_KijunSen(X() + 1) && Close(X()) < Ichimoku_KijunSen(X()) && ADX_Plus(X()) < ADX_Minus(X()) && ADX(X()) >= 25.0) { return(true); } return(false); }
La señal bajista se produce cuando el precio cruza el Kijun-Sen desde arriba y cierra por debajo de él. El índice direccional negativo también sería mayor que el positivo, con el búfer principal ADX de al menos 25 también. Se trata de una señal de tendencia a medio plazo que utiliza la confirmación direccional. Su contexto de mercado ideal se encuentra en las tendencias ya establecidas. Al probar el patrón 6, obtenemos el siguiente informe:

Este patrón, al igual que el que hemos revisado justo antes, también tiene dificultades para avanzar, aunque no de forma tan espectacular. Podrían introducirse posibles ajustes si prestamos atención a las direcciones de las nubes en marcos temporales superiores. Además, aparte del umbral ADX y la alineación del índice direccional, podemos incorporar un stop loss por debajo o por encima del Kijun-Sen para posiciones largas/cortas. Este patrón también se adapta mejor a entornos con tendencia definida y debe evitarse en mercados con rangos de precios definidos.
Rebote/rechazo de precio en el Span B de Senkou con confirmación del ADX.
Nuestro octavo patrón, el patrón 7, considera la acción del precio en el nivel B. Una señal alcista se produce cuando el precio rebota en el nivel B de Senkou, donde actúa como soporte, y el ADX se encuentra en 20 y está en ascenso. En esta situación, el Span A estaría por encima del B, lo que significa que este punto de inflexión del precio se está produciendo dentro de la nube Kumo. Lo implementamos en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 7. \ //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_7(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 2) > Close(X() + 1) && Close(X() + 1) < Close(X()) && Close(X() + 2) > Ichimoku_SenkouSpanB(X() + 2) && Close(X()) > Ichimoku_SenkouSpanB(X()) && Close(X() + 1) <= Ichimoku_SenkouSpanB(X() + 1) && Ichimoku_SenkouSpanA(X()) > Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 20.0 ) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 2) < Close(X() + 1) && Close(X() + 1) > Close(X()) && Close(X() + 2) < Ichimoku_SenkouSpanB(X() + 2) && Close(X()) < Ichimoku_SenkouSpanB(X()) && Close(X() + 1) >= Ichimoku_SenkouSpanB(X() + 1) && Ichimoku_SenkouSpanA(X()) < Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 20.0 ) { return(true); } return(false); }
La señal bajista se produce cuando el precio también rechaza el span B, donde actúa como resistencia, y de nuevo el ADX está en 20 y en ascenso. Al igual que con la señal alcista, el span B está por encima del span A, lo que significa que este cambio de precio también ocurre en el Kumo. Se trata de una señal basada en la nube de soporte/resistencia, adecuada para retrocesos profundos en las tendencias. De nuestras pruebas walk-forward, al igual que con las señales ya cubiertas, obtenemos los siguientes resultados:

El patrón 7 obtiene mejores resultados que los dos anteriores, ya que es capaz de avanzar durante un año tras un año de pruebas y optimización. Sin embargo, podría mejorarse en algunos aspectos. Se puede añadir una confirmación independiente de la dirección mediante patrones de velas japonesas. En este caso, la colocación del stop loss sería ajustada y estaría estrictamente por debajo/por encima del span B para comprar/vender. Este patrón debe evitarse al trabajar con nubes delgadas o valores ADX bajos.
Precio por encima/por debajo de la nube con confirmación ADX
Nuestro penúltimo patrón adopta una perspectiva macro al considerar la posición del precio en relación con la nube de Kumo. La señal alcista se produce cuando el precio está por encima de la nube Kumo, lo que significa que el Senkou Span A es mayor que Senkou Span B y el ADX es de al menos 25. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 8. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_8(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X() + 1) < Close(X()) && Close(X() + 1) > Ichimoku_SenkouSpanA(X() + 1) && Close(X()) > Ichimoku_SenkouSpanA(X()) && Ichimoku_SenkouSpanA(X()) > Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 25.0 ) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X() + 1) > Close(X()) && Close(X() + 1) < Ichimoku_SenkouSpanA(X() + 1) && Close(X()) < Ichimoku_SenkouSpanA(X()) && Ichimoku_SenkouSpanA(X()) > Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 25.0 ) { return(true); } return(false); }
La señal bajista se produce cuando el precio está por debajo del Kumo, esta vez con el span B por encima del span A. El buffer principal del ADX debería indicar una tendencia fuerte establecida, lo que significa que su lectura debería ser de al menos 25. Este patrón equivale a una simple señal de seguimiento de tendencia con confirmación del ADX. Es ideal para configuraciones de tendencia de continuación. Tras realizar pruebas prospectivas de este patrón y después de un período de optimización, obtenemos el siguiente informe:

El patrón 8 es probablemente el que mejor rendimiento ofrece de todos los patrones de señal probados en este artículo. Sus resultados en la marcha hacia adelante superan claramente los resultados de sus pruebas. Nuestras pruebas y nuestra formación se desarrollan en un plazo de tiempo muy limitado, por lo que, como siempre, los lectores deberían tenerlo en cuenta. Las posibles mejoras al patrón 8 consisten en considerar la dirección real de la tendencia del precio antes de tomar la decisión, utilizando parámetros delta de precio. Además, el stop loss se puede configurar cómodamente a una distancia por debajo o por encima de la nube para posiciones largas/cortas. A modo de ejemplo, a continuación se muestra una señal alcista para el patrón 8:

Chikou Span vs. Precio y Nube con Confirmación ADX
Nuestro último patrón retoma el Chikou que vimos en el patrón 4 y lo combina con el Kumo. La señal alcista se produce cuando el Chikou Span está por encima del precio, al igual que el rango A. El ADX debe ser de al menos 25 para confirmar una tendencia fuerte. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 9. | //+------------------------------------------------------------------+ bool CSignalIchimoku_ADXWilder::IsPattern_9(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Ichimoku_ChinkouSpan(X() + 26) > Ichimoku_SenkouSpanA(X()) && //Ichimoku_ChinkouSpan(X() + 26) > Close(X()) && Ichimoku_SenkouSpanA(X()) > Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 25.0 ) { return(true); } else if(T == POSITION_TYPE_SELL && Ichimoku_ChinkouSpan(X() + 26) < Ichimoku_SenkouSpanA(X()) && //Ichimoku_ChinkouSpan(X() + 26) < Close(X()) && Ichimoku_SenkouSpanA(X()) < Ichimoku_SenkouSpanB(X()) && ADX(X()) >= 25.0 ) { return(true); } return(false); }
La señal bajista se produce cuando el Chikou está por debajo del precio y del span A. El ADX también debería ser de al menos 25. Esta señal, que llega con cierto retraso, confirma la dirección y la fuerza de la tendencia. El mejor contexto de mercado para el patrón 9 serían los mercados con una fuerte tendencia. Los resultados de nuestras pruebas para este patrón final son los siguientes:

Aunque este patrón finalmente resulta rentable en su fase de avance, es un poco más complicado en comparación con el patrón 8 y algunos otros que hemos analizado anteriormente, como el patrón 4. Una posible forma de mejorarlo podría ser adoptar una confirmación secundaria con otros patrones de Ichimoku. También es importante, con este patrón de señales, asegurarse de que la nube respalde la dirección de la operación. La colocación del stop loss puede basarse en la evolución reciente de los precios y, como ya se ha destacado, este no es un patrón para mercados laterales o volátiles.
Conclusión
Hemos introducido otra combinación de indicadores: el indicador Ichimoku y el ADX Wilder. Esta combinación, basada en el limitado período de prueba de 2 años, nos ha proporcionado potencialmente siete patrones de señales que podrían generar ganancias al avanzar. Estamos hablando de posibilidades porque el período de prueba que estamos utilizando es muy pequeño y, como siempre, el objetivo del artículo es exploratorio. En el siguiente artículo intentaremos examinar los tres patrones de señales que tuvieron dificultades para avanzar y ver si el aprendizaje automático puede desempeñar algún papel, si es que lo hace, en cambiar su suerte.
| Nombre | Descripción |
|---|---|
| WZ-73.mq5 | Asesor experto creado con el asistente, cuyo encabezado muestra los archivos incluidos en la compilación. |
| SignalWZ_73.mqh | Archivo de clase de señal personalizada, utilizado en la configuración del Asistente de MQL5. |
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/18723
Advertencia: todos los derechos de estos materiales pertenecen a MetaQuotes Ltd. Queda totalmente prohibido el copiado total o parcial.
Este artículo ha sido escrito por un usuario del sitio web y refleja su punto de vista personal. MetaQuotes Ltd. no se responsabiliza de la exactitud de la información ofrecida, ni de las posibles consecuencias del uso de las soluciones, estrategias o recomendaciones descritas.
Características del Wizard MQL5 que debe conocer (Parte 74): Uso de patrones de Ichimoku y del ADX-Wilder con aprendizaje supervisado
Redes neuronales en el trading: Desentrañando las componentes estructuradas (Final)
Algoritmo del átomo artificial — Artificial Atom Algorithm (A3)
Red neuronal cuántica en MQL5 (Parte III): Procesador cuántico virtual con qubits
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso