
Características del Wizard MQL5 que debe conocer (Parte 42): Oscilador ADX
Introducción
El indicador ADX es un oscilador cuyo objetivo es medir la fortaleza de una determinada tendencia en el mercado para el valor al que está vinculado. Este artículo, al igual que algunos que lo precedieron, examina los diversos patrones exhibidos por este indicador en un archivo de clase de señal personalizado, para Asesores Expertos ensamblados por un asistente. Revisamos un patrón a la vez como lo hicimos en los artículos anteriores que cubren RSI, Bandas de Bollinger y el RSI y luego concluimos con una prueba que incluye todos los patrones para tener una idea de cuál tiene la mayor ponderación.
Sin embargo, antes de comenzar con esto, aún no hemos finalizado el análisis del SAR Parabólico, por lo que comenzaremos cubriendo los capítulos finales al respecto.
SAR y divergencia de volumen
Para resumir lo expuesto en dicho artículo, el SAR Parabólico se utiliza principalmente para identificar posibles puntos de reversión y para rastrear stop loss en mercados con tendencia. Son 'puntos de reversión potenciales' porque si el precio los rompe, el indicador se invertirá marcando sus puntos en el extremo opuesto del rango alto-bajo, por lo tanto, los puntos generados en un gráfico de precios son niveles de reversión potenciales en la acción del precio. Estos puntos, que están marcados como puntos, siguen el precio ya sea por debajo (en una tendencia alcista) o por encima (en una tendencia bajista), lo que permite a los operadores estar atentos a estas reversiones.
La divergencia de volumen ocurre cuando el precio y el volumen se dirigen en direcciones opuestas. Para los operadores de Forex, los datos de "volumen" no son un concepto práctico, dada su desagregación entre múltiples corredores y plataformas. Un indicador intermedio para esto es el rango de precios o la volatilidad. Por lo tanto, una extensión de precio, en cualquier dirección que esté acompañada de una caída de la volatilidad, podría servir como un indicador de señal en forma de continuación.
Por ejemplo, si el SAR Parabólico pasa de estar por debajo del precio a estar por encima (lo que indica una señal de venta) y esto va acompañado de una caída del rango de la barra de precios, esto puede interpretarse como una señal de venta débil y más como un presagio de una continuación de la tendencia larga anterior. Del mismo modo, cuando el precio alcanza el punto SAR superior (por encima del precio en una tendencia bajista) y se observa una divergencia de volatilidad (rango de barra de precio decreciente), esto indica un posible fortalecimiento de la tendencia bajista o el comienzo de una continuación bajista. Codificamos este patrón de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 7. | //+------------------------------------------------------------------+ bool CSignalSAR::IsPattern_7(ENUM_POSITION_TYPE T) { m_sar.Refresh(-1); m_sar_alt.Refresh(-1); if(T == POSITION_TYPE_BUY && Base(StartIndex() + 1) < Low(StartIndex() + 1) && Base(StartIndex()) > High(StartIndex())) { return(Range(StartIndex()) < Range(StartIndex() + 1) && Range(StartIndex() + 1) < Range(StartIndex() + 2)); } else if(T == POSITION_TYPE_SELL && Base(StartIndex() + 1) > High(StartIndex() + 1) && Base(StartIndex()) < Low(StartIndex())) { return(Range(StartIndex()) < Range(StartIndex() + 1) && Range(StartIndex() + 1) < Range(StartIndex() + 2)); } return(false); }
Es de destacar, según nuestra fuente anterior, que ahora nos estamos centrando en la tendencia anterior más grande y no usamos la señal de la misma manera simple como lo hacíamos en patrones como el primer patrón, 0. En realidad, se trata de una señal de contratendencia porque estamos buscando patrones de continuación en un giro débil. Este cambio "débil" se confirma con una caída del rango de la barra de precios en más de 3 barras. Esta longitud de 3 es ajustable, pero la vamos a mantener para fines de prueba.
Por el contrario, si el precio alcanza cualquiera de los umbrales de los puntos SAR en una volatilidad creciente, eso debería indicar una confirmación del cambio en el SAR. Esta señal, que también se basa en la tesis de la divergencia de volumen, sería en esencia como el patrón 0 que cubrimos en este artículo anterior sobre el SAR, más una comprobación del aumento del rango de la barra de precios. Este patrón en particular no está codificado ni probado pero, como siempre, el lector puede consultarlo.
Además, con este patrón, los traders pueden usar la divergencia de volumen junto con el SAR Parabólico para colocar ajustes estratégicos de stop-loss. Si volvemos a nuestra primera configuración de divergencia de volumen mencionada anteriormente, donde buscábamos cambios débiles que apuntaran a una continuación fuerte, estas señales implican una pausa en una tendencia y pueden indicar niveles importantes de soporte o resistencia. Al tenerlos identificados gracias al débil cambio del SAR y la caída de la volatilidad, los traders pueden colocar o mover sus stop loss a sus posiciones abiertas que siguen la tendencia dominante para estar justo por encima de estas zonas, si la posición es corta, o justo debajo de ellas si la posición es larga.
El SAR Parabólico puede generar muchas señales falsas en mercados volátiles o con fluctuaciones, por lo que, en el papel, la verificación de divergencia de volumen puede ser una ventaja. En particular, en casos de creciente volatilidad, puede ayudar a evitar entradas prematuras al mercado dado que la creciente volatilidad, al perforar los marcadores del SAR, a menudo indica un impulso significativo hacia una tendencia en desarrollo. Y si esto no es suficiente, se puede combinar con otros indicadores.
Estas combinaciones podrían ser más adecuadas con indicadores osciladores como el RSI y dado que solo hemos codificado la primera implementación de la divergencia de volumen SAR que afirma la continuación en lugar de confirmar la reversión, el lector debe estar preparado para codificar estas verificaciones de indicadores adicionales en caso de reversión. La prueba con el patrón 7 para el par de divisas EURUSD durante el año 2022 en el marco temporal diario nos presenta los siguientes resultados:
El patrón de mapa de bits entero que utilizamos para el patrón 7 es 0x80, que se traduce al valor decimal y al entero de entrada de 128 y, una vez que se establece, el Asesor Experto solo realiza operaciones utilizando el patrón 7.
SAR invertido en un marco temporal superior
El SAR Parabólico en un marco temporal superior puede ser muy útil para proporcionar una perspectiva más amplia de la tendencia y ayudar a filtrar el ruido de las falsas volteretas, frecuente en marcos temporales más cortos. Si el SAR en un gráfico semanal indica una fuerte tendencia alcista, un operador que utilice un gráfico de 4 horas puede priorizar las posiciones largas e ignorar las señales de venta en marcos temporales inferiores, considerándolas como posibles ruidos o retrocesos a corto plazo.
En los casos en que las señales en dos marcos temporales están alineadas, se presenta una señal aún más fuerte. Si el marco temporal de 4 horas es alcista y el de 15 minutos indica un giro donde el SAR se encuentra en el extremo inferior del rango de precios, este punto en particular puede representar no solo una señal fuerte, sino también una entrada más precisa. También existen estrategias que utilizan operaciones contratendencia, pero estas pueden ser arriesgadas, ya que el dicho «la tendencia es tu amiga» ha sido, sin duda, muy efectivo para muchos operadores. Al confiar en la confirmación del SAR en múltiples marcos temporales, se pueden evitar entradas contra tendencia riesgosas o poco confiables.
El SAR no sólo sirve como señal de entrada sino también como indicador de salida. Al utilizar asesores expertos ensamblados por asistentes y sus clases correspondientes, que explotan los umbrales de apertura y cierre, estamos mejor preparados para implementar esto sin tener que proporcionar ningún código complementario. El uso del código adjunto al final de este artículo y su ensamblaje en un Asesor Experto se trata en los artículos aquí y aquí para nuevos lectores. Los archivos de extensión MQ5 se incluyen simplemente para mostrar cómo se vería el archivo ensamblado después de ejecutar el asistente y también para referenciar adecuadamente cualquier archivo necesario que deba estar presente al ensamblar el Asesor Experto. Por lo tanto, las comprobaciones en más de un marco temporal garantizan que las salidas sean más precisas, lo que en el papel debería producir un mejor rendimiento.
Los traders también pueden usar los niveles SAR en el marco temporal superior para establecer niveles de stop-loss para posiciones tomadas en marcos temporales inferiores. Este enfoque garantiza que el stop se coloque en un nivel significativo, lo que reduce la posibilidad de un stop prematuramente forzado por la volatilidad a corto plazo. Las tendencias SAR de plazos más largos pueden indicar tendencias de mercado más duraderas, mientras que los plazos más cortos capturan puntos de entrada para capitalizar estos movimientos importantes. Implementamos esto de la siguiente manera en MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 8. | //+------------------------------------------------------------------+ bool CSignalSAR::IsPattern_8(ENUM_POSITION_TYPE T) { m_sar.Refresh(-1); m_sar_alt.Refresh(-1); if(T == POSITION_TYPE_BUY && Base(StartIndex() + 1) > High(StartIndex() + 1) && Base(StartIndex()) < Low(StartIndex())) { return(Alt(StartIndex()) < LowAlt(StartIndex())); } else if(T == POSITION_TYPE_SELL && Base(StartIndex() + 1) < Low(StartIndex() + 1) && Base(StartIndex()) > High(StartIndex())) { return(Alt(StartIndex()) > HighAlt(StartIndex())); } return(false); }
Realizamos pruebas con configuraciones de prueba similares a las anteriores con el patrón 7 pero utilizando el marco de tiempo semanal como nuestro marco de tiempo alternativo y producimos los siguientes resultados:
Utilizamos el mapa de bits de entrada de 256 para representar el noveno patrón, patrón 8. En resumen, el SAR de marco temporal superior ayuda a los operadores a comprender el contexto general del mercado en el que operan las señales de marco temporal inferior. Esta vista contextual ayuda a evitar operar en exceso o actuar basándose en señales insignificantes que no se alinean con la tendencia más amplia.
Superposición de SAR y RSI
El RSI, como se destaca en un artículo reciente de esta serie, es un oscilador que mide la velocidad y el cambio de los movimientos de precios, normalmente utilizado para detectar condiciones de sobrecompra y sobreventa. Opera en una escala de 0 a 100, donde las lecturas superiores a 70 indican condiciones de sobrecompra y las inferiores a 30 indican sobreventa. Esto, al combinarse con el SAR, puede permitir una complementación mutua y servir para identificar tendencias.
El SAR Parabólico es eficaz para identificar la tendencia actual o posibles reversiones de tendencia, pero también puede generar señales falsas en mercados agitados o laterales. Por esta razón, el RSI podría añadir un nivel de análisis de impulso, ayudando a confirmar si el mercado está realmente sobrecomprado o sobrevendido, reafirmando así la fortaleza o debilidad de la tendencia identificada por el SAR. Así, cuando el SAR Parabólico cae por debajo del precio, indicando una tendencia alcista, y el RSI muestra una lectura cercana a 30 (indicando condiciones de sobreventa), refuerza la señal de que la reversión de la tendencia es probablemente genuina y tiene impulso alcista.
La combinación con el SAR, sin embargo, puede adoptar dos formas. Recuerde que el RSI es un indicador de impulso y a menudo hay ráfagas en el mercado en las que el impulso o una tendencia determinada pueden ser persistentes. Con este fin, aunque por defecto, como se argumentó anteriormente, utilizaríamos el SAR para confirmar situaciones de "sobrecompra", en la mayoría de los casos también puede servir para confirmar el impulso predominante, especialmente si se consideran los zooms fuera de las situaciones de indicadores de cambio del SAR y se observan las brechas de precios de puntos o los cambios de puntos a lo largo de cada tendencia. Estos claramente presentan una alternativa al emparejamiento SAR-RSI. Pero no lo ponemos en práctica, sino que lo presentamos aquí como tema de conversación. En su lugar, utilizamos el enfoque “tradicional”, que implementamos en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 9. | //+------------------------------------------------------------------+ bool CSignalSAR::IsPattern_9(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Base(StartIndex()) < Low(StartIndex())) { return(RSI(StartIndex()) <= 30.0); } else if(T == POSITION_TYPE_SELL && Base(StartIndex()) > High(StartIndex())) { return(RSI(StartIndex()) >= 70.0); } return(false); }
Probar con el código que tenemos arriba no nos da muchas operaciones, ya que en el marco temporal diario las condiciones tienden a persistir, lo que refuerza el argumento a favor de la segunda forma en que podríamos implementar esta combinación SAR-RSI, como se destacó anteriormente. Los resultados de estas pruebas se presentan a continuación:
Como ha sido el caso al analizar los indicadores en varios patrones, hemos concluido con un informe de prueba optimizado que selecciona múltiples patrones con umbrales personalizados para cada patrón durante nuestro período de ventana de prueba. A continuación se presentan resultados de pruebas similares para el SAR parabólico:
En mi opinión, el uso de múltiples patrones, cada uno con su umbral ideal, es adecuado si estos valores de umbral no se seleccionan individualmente ni se optimizan durante un período estrecho sin pruebas futuras. Es mejor utilizarlos o probarlos con valores preestablecidos en función de la evaluación que uno haga de su rendimiento en el uso en vivo.
Descripción general de ADX
El oscilador ADX mide la fuerza de una tendencia determinada utilizando 3 buffers. De ellos, el DI+ y el DI- pueden concebirse como indicadores separados porque miden la fuerza del precio en una dirección preestablecida. El DI+ (también conocido como Índice Direccional Positivo) mide la fuerza de los movimientos al alza, mientras que el DI- (Índice Direccional Negativo) pone un número a la fuerza de los movimientos a la baja de los precios. Por lo tanto, cuando DI+ está por encima de DI- indica que los compradores tienen más influencia que los vendedores y viceversa.
El buffer DI+ se deriva de los movimientos de precios históricos que están por encima del máximo anterior, lo que significa que si el máximo de hoy es mayor que el de ayer, entonces se registra un valor DI+ positivo. Por el contrario, DI- se obtiene de la parte del mínimo actual que está por debajo del mínimo del día anterior, de modo que se registra un valor de amortiguación para DI- si obtenemos un mínimo por debajo del del día anterior, asumiendo que se está utilizando un marco de tiempo diario.
Las fórmulas para DI+ y DI- son:
DI+ = (Movimiento direccional positivo suavizado / ATR (Rango verdadero promedio)) × 100
DI- = (Movimiento direccional negativo suavizado / ATR (Rango verdadero promedio)) × 100
El componente Average True Range o ATR es una parte clave de estos topes, ya que actúa para normalizar los valores del indicador teniendo en cuenta la volatilidad predominante en ese momento. Esto se debe a que, como era de esperar, los grandes cambios en los máximos o mínimos tienden a ocurrir con mucha frecuencia en entornos volátiles, por lo tanto, al normalizar al rango verdadero (True Range, TR), solo los grandes movimientos (a pesar del TR) se ponderan adecuadamente en los buffers del indicador. El TR se calcula seleccionando la mayor de tres opciones, es decir, el máximo actual menos el mínimo actual, el máximo actual menos el cierre anterior y el cierre anterior menos el mínimo actual. Las señales de estos buffers se observan luego desde sus cruces así como con una combinación de otros indicadores, como veremos a continuación.
Cruce ADX con DI+ y DI-
Para nuestro primer patrón, patrón-0, se indica una señal alcista cuando DI+ cruza por encima de DI-, esto indica que la presión de compra es más fuerte que la presión de venta, marcando potencialmente el inicio de una tendencia alcista. Por el contrario, la señal bajista (DI- > DI+) Cuando DI- cruza por encima de DI+, indica que la presión de venta es más fuerte que la presión de compra, lo que potencialmente marca el inicio de una tendencia bajista. Implementamos este patrón de la siguiente manera en MQL5:
//+------------------------------------------------------------------+ //| Check for Pattern 0. | //+------------------------------------------------------------------+ bool CSignalADX::IsPattern_0(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && BasePlus(X() + 1) < BaseMinus(X() + 1) && BasePlus(X()) > BaseMinus(X())) { return(true); } else if(T == POSITION_TYPE_SELL && BasePlus(X() + 1) > BaseMinus(X() + 1) && BasePlus(X()) < BaseMinus(X())) { return(true); } return(false); }
El buffer principal ADX mide la fuerza de la tendencia en lugar de su dirección. Oscila entre 0 y 100, con lecturas superiores a 25 indicando una tendencia fuerte, mientras que valores inferiores a 25 sugieren un mercado débil o sin tendencia. Es importante volver a enfatizar que el ADX no indica si la tendencia es alcista o bajista; simplemente mide la fuerza de la tendencia. Cuando el ADX está subiendo y el DI+ está por encima del DI-, indica una fuerte tendencia alcista. Si el ADX está subiendo y el DI- está por encima del DI+, esto indica una fuerte tendencia bajista.
La optimización de este patrón para los umbrales de apertura y cierre, así como los niveles de toma de ganancias, en el marco temporal diario para el año 2022 en el par de divisas EURCHF nos da estos resultados en una de las configuraciones 'ideales':
ADX por encima de 25: entrada en tendencia fuerte
Hemos analizado los dos búferes del DMI mencionados anteriormente, DI+ y DI-, pero el tercer búfer del ADX es su búfer principal. También proporciona lecturas en el rango de 0 a 100. Se calcula determinando primero el índice direccional, que se da mediante la siguiente fórmula:
Donde:
- DX es el índice direccional buscado
- +DI es el movimiento direccional positivo ya determinado cuya fórmula se muestra arriba
- -DI es la contraparte negativa, cuya fórmula también está arriba
Una vez que tenemos el índice direccional (Directional Index, DX), obtener el índice direccional promedio simplemente implica obtener el promedio móvil exponencial de los últimos 14 valores del índice direccional. Alternativamente, se puede utilizar un enfoque de suavizado que sigue la fórmula que se comparte a continuación:
Donde:
- "n" es 14, o cualquier período de promedio adecuado que se ingrese en el indicador ADX.
Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 1. | //+------------------------------------------------------------------+ bool CSignalADX::IsPattern_1(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Base(X()) > 25.0 && BasePlus(X()) > BaseMinus(X())) { return(true); } else if(T == POSITION_TYPE_SELL && Base(X()) > 25.0 && BasePlus(X()) < BaseMinus(X())) { return(true); } return(false); }
Al optimizar, con configuraciones de entorno similares a las que teníamos con el patrón 0, donde nuestro símbolo es EURCHF en el horario diario para el año 2022, obtenemos los siguientes resultados:
El ADX cae por debajo de 25: debilidad de la tendencia
El patrón 2 aprovecha el reverso del patrón 1, al buscar instancias en las que el amortiguador principal del ADX cruza por debajo de 25, para ir en contra de la tendencia actual como lo indica el diferencial DI+ a DI-. Entonces, siempre que el ADX cruza por debajo de 25 desde arriba y el DI- ha estado por encima del DI+, esto se interpreta como alcista dado que es una señal de debilitamiento del impulso bajista. Del mismo modo, si el mismo cruce de ADX ocurriera cuando DI+ estuviera por encima de DI-, eso sería bajista, nuevamente como una señal temprana. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 2. | //+------------------------------------------------------------------+ bool CSignalADX::IsPattern_2(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Base(X()+1) > 25.0 && Base(X()) < 25.0 && BasePlus(X()) < BaseMinus(X())) { return(true); } else if(T == POSITION_TYPE_SELL && Base(X()+1) > 25.0 && Base(X()) < 25.0 && BasePlus(X()) > BaseMinus(X())) { return(true); } return(false); }
Las pruebas de optimización se ejecutan con configuraciones como en los patrones anteriores y nos dan los siguientes resultados para el patrón 2:
Cruce del ADX con la media móvil
Para el patrón-3, la media móvil suplementaria que se aplica no es la típica media móvil de precios, sino otro búfer de valores de media móvil para el búfer principal del ADX. Incluso esto puede ser rastreado como un búfer paralelo al ADX y cuando el ADX lo cruza de la misma manera que el precio suele cruzar los búferes de media móvil en un gráfico de precios, esto es a menudo una señal poderosa. Recordemos que el ADX en sí es neutral en cuanto a dirección, pero solo indica la fuerza de la señal predominante, ya sea larga o corta, mediante un cruce similar. Implementamos esto en código de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 3. | //+------------------------------------------------------------------+ bool CSignalADX::IsPattern_3(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Base(X()+1) < BaseAverage(X()+1) && Base(X()) > BaseAverage(X()) && BasePlus(X()) > BaseMinus(X())) { return(true); } else if(T == POSITION_TYPE_SELL && Base(X()+1) < BaseAverage(X()+1) && Base(X()) > BaseAverage(X()) && BasePlus(X()) < BaseMinus(X())) { return(true); } return(false); }
A continuación se presentan ejecuciones de pruebas a partir de resultados de optimización seleccionados, en configuraciones similares a las que hemos utilizado con los patrones anteriores:
ADX y divergencia de precios
La divergencia con el ADX se basa en la acción del precio predominante en el gráfico de precios del valor principal. Sin embargo, esta "divergencia" es un poco peculiar, ya que uno siempre busca una disminución en el amortiguador principal del ADX contra una tendencia fuerte en el gráfico de precios en cualquier dirección. Entonces, una divergencia alcista estaría marcada por una caída en el precio, en el gráfico de precios del valor que ocurre junto con una caída en el ADX en el búfer principal del oscilador. Y una divergencia bajista se caracterizaría por una tendencia alcista en el gráfico de precios mientras que también tiene una disminución en el oscilador ADX. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 4. | //+------------------------------------------------------------------+ bool CSignalADX::IsPattern_4(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && Close(X()+2) > Close(X()+1) && Close(X()+1) > Close(X()) && Base(X()+2) > Base(X()+1) && Base(X()+1) > Base(X()) && Base(X()) <= 25) { return(true); } else if(T == POSITION_TYPE_SELL && Close(X()+2) < Close(X()+1) && Close(X()+1) < Close(X()) && Base(X()+2) > Base(X()+1) && Base(X()+1) > Base(X()) && Base(X()) <= 25) { return(true); } return(false); }
La ejecución de pruebas de algunas de sus configuraciones óptimas nos da los siguientes resultados:
ADX y ruptura del rango
El patrón 5, al igual que el 4 anterior, se basa en la acción del precio del gráfico de precios del valor para desarrollar y confirmar su señal. En este caso, sin embargo, buscamos rupturas en el precio después de períodos prolongados de consolidación que estén respaldados por picos en el ADX por encima del umbral de 25. Una señal alcista es un aumento del precio a través de la resistencia que ocurre simultáneamente con un aumento del ADX por encima de 25. Del mismo modo, una señal bajista es una caída del precio a través del soporte que también está respaldada por un aumento del ADX a través de 25. Implementamos esto en MQL5 de la siguiente manera:
//+------------------------------------------------------------------+ //| Check for Pattern 5. | //+------------------------------------------------------------------+ bool CSignalADX::IsPattern_5(ENUM_POSITION_TYPE T) { if(T == POSITION_TYPE_BUY && ATRAverage(X()+1) > ATR(X()+1) && ATRAverage(X()) < ATR(X()) && ATR(X()) < High(X())-Low(X()) && Base(X()+1) < 25 && Base(X()) > 25 && Close(X()+1) < Close(X())) { return(true); } else if(T == POSITION_TYPE_SELL && ATRAverage(X()+1) > ATR(X()+1) && ATRAverage(X()) < ATR(X()) && ATR(X()) < High(X())-Low(X()) && Base(X()+1) < 25 && Base(X()) > 25 && Close(X()+1) > Close(X())) { return(true); } return(false); }
Definir de forma concisa las consolidaciones y las rupturas en el código es muy engorroso, aunque para los traders manuales esto es sencillo. Nuestra solución para esto será confiar en el indicador ATR y tomar sus lecturas durante un período considerable en el historial y compararlas con el rango de la barra de precios reciente. Si el ATR se hubiera mantenido moderado durante un período de tiempo razonable, y fuera menor que el rango de precios reciente, entonces eso podría implicar una ruptura. Esto no es preciso de ninguna manera, y estoy seguro de que se pueden realizar implementaciones más exhaustivas, pero para nuestros propósitos en este artículo, ¡tendrá que ser suficiente! Las ejecuciones de pruebas, en configuraciones similares a los patrones ya tratados anteriormente, de los mejores resultados de optimización nos brindan los siguientes informes:
Si bien nos esforzamos por tener entornos y configuraciones de prueba similares para todos los patrones, este patrón en particular casi no produjo operaciones al utilizar el marco de tiempo diario. Por eso se hizo una excepción para optimizar el marco temporal horario y ver si se podían ver más rupturas y, por lo tanto, se podían realizar operaciones. Por lo tanto, los resultados anteriores se basan en datos horarios y no diarios, como fue el caso con los otros patrones anteriores.
Conclusión
Tendremos que hacer una pausa en nuestra mirada al ADX aquí, ya que hay tres patrones más que se considerarán como parte del próximo indicador que analizaremos. Sin embargo, para recapitular, hemos examinado el ADX sobre una base de patrones, que es algo que la clase de señal de los Asesores Expertos ensamblados por el asistente permite dado que ya hay algún código en la clase 'Señal Experta' que ayuda a manejarlos. Las clases de ensamblaje del asistente que se utilizan para ensamblar Asesores Expertos proporcionan una gran cantidad de funciones y métodos que claramente eliminan la necesidad de codificar desde cero, especialmente cuando se exploran o prueban ideas en una fase preliminar. Además del uso de patrones, hay otras áreas que aún debemos considerar dentro de estas series, como el uso de órdenes pendientes, la personalización del flujo de órdenes o la cantidad de posiciones simultáneas que se pueden abrir en cualquier momento, el uso de indicadores como ATR para guiar los parámetros de entrada de la brecha de precios no solo del trailing stop sino también del stop loss inicial y el nivel de take profit, y muchos más. Con suerte, podremos analizar estos y otros temas en el futuro, pero mientras tanto, nos centraremos en los conceptos básicos. Patrones e indicadores comunes.
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/articles/16085





- 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