Indicador técnico

Oscilador de Volumen: Una Herramienta Clave para Traders en MetaTrader 5
MetaTrader5
Oscilador de Volumen: Una Herramienta Clave para Traders en MetaTrader 5

El Oscilador de Volumen es una herramienta fundamental que compara dos medias móviles calculadas sobre el volumen de operaciones. Cálculo: LongEMA = EMA(Volumen, PeriodoLargo) ShortEMA = EMA(Volumen, PeriodoCorto) VolumeOsc = 100 * (ShortEMA - LongEMA) / LongEMA Cuando observamos un incremento o disminución en el precio junto con un aumento en el volumen, esto puede señalar la fuerza de una tendencia. Si el oscilador de volumen se encuentra por encima de la línea cero, puede confirmar la dirección del precio y la tendencia del mercado, ya sea que estemos en un mercado alcista o bajista. Por otro lado, un incremento o disminución en el precio acompañado de una disminución en el volumen podría señalar una debilidad en la tendencia. En este caso, si el oscilador de volumen está por debajo de la línea cero, podría indicar que la dirección del precio y la tendencia general del mercado son débiles. Diversificaciones en el área negativa del oscilador suelen señalar que una reversión de la tendencia podría estar próxima. La línea del indicador oscila entre valores por encima y por debajo de la línea cero, brindando una indicación sobre la tendencia del precio y la fuerza o debilidad del movimiento. Valores positivos del oscilador sugieren que hay un soporte suficiente en el mercado para que el precio continúe en su dirección actual. Valores negativos indican que no hay soporte en el mercado, lo que sugiere que el precio está estancado o insinuando una posible reversión de tendencia.

2025.04.14
EquiPeak Drawdown Tracker: Monitorea el Riesgo de tus EAs en MetaTrader 5
MetaTrader5
EquiPeak Drawdown Tracker: Monitorea el Riesgo de tus EAs en MetaTrader 5

¿Para qué sirve exactamente? Referencia visual del rendimiento de tus EAs: Introduce manualmente el Drawdown Máximo Histórico conocido o esperado de tu estrategia (por ejemplo, de pruebas anteriores o backtesting). Así, tendrás siempre una referencia clara para saber si tu EA está dentro de los parámetros normales o si está enfrentando una situación inesperada. Monitoreo continuo del riesgo actual: También puedes utilizarlo para verificar el drawdown actual en tiempo real y comprobar si estás superando niveles críticos que requieran tu atención inmediata. Notificaciones inteligentes y detalladas: El indicador te envía notificaciones push (a tu móvil a través de la app de MetaTrader) cada vez que se establece un nuevo récord de drawdown, o periódicamente (según tu configuración), para mantenerte informado sin inundarte de mensajes innecesarios. Registro automático: Permite registrar continuamente el drawdown en un archivo externo (CSV o TXT) para un análisis posterior. ¿Quiénes pueden beneficiarse de esto? Traders que operan con sistemas automáticos o semi-automáticos y quieren conocer rápidamente si su EA está funcionando dentro del drawdown máximo esperado. Usuarios que necesitan verificar visualmente el comportamiento de sus estrategias en condiciones reales frente a las expectativas basadas en pruebas previas. Cualquier trader que desee gestionar su riesgo de manera efectiva, sabiendo inmediatamente cuando su operación supera los límites aceptables. Guía de Configuración Detallada (Inputs) A continuación, te mostramos todos los parámetros personalizables del indicador: Magics a monitorear (-1 rastrea todos) Especifica los números mágicos de las posiciones a rastrear. Usa   -1   para monitorear todas ellas. Max DD Inicial (%) Aquí es donde introduces el drawdown máximo histórico conocido de tu EA (por ejemplo, el resultado más alto obtenido en un largo backtest). Esto servirá como referencia visual. Intervalo de actualización (segundos) Frecuencia de las actualizaciones de cálculo. Modo de actualización de MaxDD Define cómo se actualiza el máximo histórico: ACTUALIZAR_MAX_DD_SI_MAYOR: Actualiza automáticamente si el actual supera el histórico ingresado. SIN_ACTUALIZAR_MAX_DD: Nunca actualiza el valor histórico ingresado manualmente, pero envía notificaciones cada 60 minutos sobre el estado actual. ¿Enviar notificaciones push? Habilita o deshabilita las notificaciones push a tu móvil. ¿Referencia fija o pico? Elige cómo definir la referencia de balance: REF_BALANCE_FIJO: Balance fijo, ingresado manualmente. REF_BALANCE_PICO: Siempre usa el balance máximo alcanzado (guardado automáticamente). Balance fijo (0 => actual) Balance inicial fijo. Si usas   0, se tomará el balance actual al cargar el indicador. Color para el texto de DD actual Color del texto de drawdown actual. Color para el texto de max DD Color del texto de drawdown histórico. Tamaño de fuente (DD actual) Tamaño de fuente del drawdown actual. Tamaño de fuente (max DD) Tamaño de fuente del drawdown histórico. ¿Etiquetas detrás del gráfico? Coloca los textos detrás del gráfico. Etiqueta X (píxeles) Distancia horizontal desde el borde izquierdo. Etiqueta Y (píxeles) Distancia vertical desde el borde superior. Espaciado vertical Espacio vertical entre los textos. ¿Imprimir registros en el Journal? Habilita mensajes detallados en el Journal. Habilitar registro en archivo Registra automáticamente el drawdown actual en un archivo externo. Extensión de archivo (CSV o TXT) Elige el formato del archivo generado. Registro automático en archivo Los valores de drawdown se registran automáticamente junto con la fecha y hora en formato CSV o TXT, ubicado en la carpeta común de MT5 ( MetaTrader 5 Terminal/Common/Files/ ). Esto es ideal para analizar tus resultados más tarde. Recomendaciones importantes para sacarle el máximo provecho Siempre introduce el Drawdown Máximo Histórico esperado   (resultado de backtesting, rendimiento anterior, etc.) en el input   "Max DD Inicial (%)". Esto te permitirá evaluar rápidamente si tu EA está pasando por un período normal o necesita ajustes. Coloca el indicador en un gráfico dedicado, monitoreando todos los números mágicos, o en cada gráfico específico si prefieres datos independientes. Ajusta cuidadosamente la tasa de actualización, colores, posición y tamaño del texto para una visualización óptima según tus preferencias. Para recibir notificaciones push en tu móvil Abre MetaTrader en móvil y copia tu   ID de MetaQuotes   ( Ajustes > Mensajes ). En MetaTrader 5 de escritorio, ve a   Herramientas > Opciones > Notificaciones. Marca   Habilitar Notificaciones Push   y pega tu ID de MetaQuotes.

2025.04.14
Kuskus Starlight: El Indicador Esencial para MetaTrader 5
MetaTrader5
Kuskus Starlight: El Indicador Esencial para MetaTrader 5

Nombre del Indicador: Kuskus Starlight Descripción: Kuskus Starlight es un indicador técnico que funciona como un oscilador, utilizando una transformación de Fisher para ayudar a los traders a identificar tendencias y posibles reversos en el mercado. Se normaliza dentro de un rango específico de períodos, con parámetros de suavizado ajustables para adaptar su sensibilidad. Este indicador es especialmente valorado como herramienta de confirmación dentro de los sistemas de trading, facilitando la validación de señales de operación. Antecedentes: Descubrí el indicador Kuskus Starlight a través de Stonehill Forex y el canal de YouTube No Nonsense Forex (NNFX). Ambas plataformas destacan su utilidad como indicador de confirmación en sus sistemas de trading. Según Stonehill Forex, el indicador se remonta a 2007, mientras que NNFX menciona su lanzamiento en 2017. Para un análisis detallado y aplicación del indicador Kuskus Starlight, puedes consultar los siguientes recursos: Artículo de Stonehill Forex:  Kuskus Starlight como Indicador de Confirmación Video de NNFX en YouTube:  Kuskus Starlight Indicator ¿Por qué lo codifiqué? Como usuario de MetaTrader 5 (MT5), no pude encontrar una versión del indicador Kuskus Starlight compatible con MT5. Reconociendo su potencial valor para los traders en el entorno de MT5, tomé la iniciativa de codificarlo yo mismo, asegurando que su funcionalidad e integridad se alineen con el algoritmo original. Código y Algoritmo Original de MT4: La versión original de este indicador, diseñada para MetaTrader 4 (MT4), fue publicada por Scriptor y se puede encontrar aquí:  Kuskus Starlight - Código Base MQL4. Mi adaptación para MT5 se basa en este código y preserva sus principios fundamentales, haciéndolo accesible a la comunidad de MT5. ¡Espero que esta versión de Kuskus Starlight para MT5 sea una valiosa adición a tu caja de herramientas de trading! Configuración del Indicador: Opciones de DrawType Opciones de DrawType: Línea Opciones de DrawType: Histograma Opciones de DrawType: StaryStaryNight Opciones de Tipo de Flecha: Varias opciones de flechas para elegir

2025.04.14
Chande Kroll Stop: Un Indicador Clave para tu Estrategia de Trading
MetaTrader5
Chande Kroll Stop: Un Indicador Clave para tu Estrategia de Trading

El indicador Chande Kroll Stop es una herramienta esencial para determinar el nivel de configuración del stop loss en tus operaciones. Este indicador se presenta con dos líneas en el gráfico de precios que te ayudarán a tomar decisiones más informadas. La línea roja representa el nivel de stop para posiciones cortas, mientras que la línea verde indica el nivel de stop para posiciones largas. Línea para posiciones largas (verde): Esta línea te muestra a qué nivel deberías establecer tu stop loss para las posiciones largas. Si el precio del activo comienza a caer y toca este nivel, puede ser un indicativo de que es hora de cerrar tus compras. Línea para posiciones cortas (roja): Por otro lado, esta línea indica el nivel al que deberías cerrar tus posiciones cortas. Si el precio empieza a subir y alcanza este nivel, es una señal de que debes cerrar tus ventas. El Chande Kroll Stop se calcula en base al rango verdadero (ATR) y se posiciona como un indicador que no depende de la volatilidad del instrumento. Fue presentado por primera vez en el libro The New Technical Trader, escrito por Tushar Chande y Stanley Kroll. Este indicador, diseñado para seguir tendencias, te ayuda a establecer niveles de stop al calcular el rango verdadero promedio del mercado, teniendo en cuenta la volatilidad actual. Su cálculo se basa en los valores máximos y mínimos de precio durante un periodo determinado y la desviación estándar (ATR). Estos datos permiten que el indicador "sienta" el mercado y ajuste sus valores según la situación actual. La volatilidad del mercado juega un papel crucial en el cálculo del indicador. En períodos de alta volatilidad, las líneas del Chande Kroll Stop estarán más alejadas del precio actual, brindándote más margen ante las fluctuaciones del mercado. En cambio, en momentos de baja volatilidad, las líneas se acercarán más al precio, permitiéndote reaccionar más rápidamente a cualquier cambio.

2025.04.10
Indicador de Factor de Uniformidad en MetaTrader 5: Optimiza tu Estrategia de Trading
MetaTrader5
Indicador de Factor de Uniformidad en MetaTrader 5: Optimiza tu Estrategia de Trading

Hoy vamos a platicar sobre un indicador muy interesante para MetaTrader 5: el Factor de Uniformidad. Este indicador es una herramienta analítica sencilla que nos permite comprobar la hipótesis de que las series temporales de precios se comportan como un "paseo aleatorio", específicamente como un "paseo aleatorio gaussiano". Este concepto puede ayudarnos a transformar los incrementos de precio en series temporales más estables y predecibles, especialmente en términos de volatilidad. Como bien sabes, la distancia que una variable de "paseo aleatorio" se espera cubrir tras N pasos se estima multiplicando su desviación estándar por la raíz cuadrada de N, o N^0.5. Este indicador calcula estadísticas del cambio de precio promedio (por barra) para subconjuntos predefinidos de barras. La "promediación" se realiza sobre la distancia (número de barras hasta el N dado) elevada a la potencia de F, un factor que se enumera de 0.1 a 1 con un paso de 0.1. Se utilizan todas las barras disponibles en el gráfico actual para recopilar estadísticas en ventanas deslizantes de hasta N barras. Luego, el indicador encuentra la distribución más "regular" de las estadísticas entre diferentes valores de F y muestra un histograma para este factor (considerado óptimo), que suele ser 0.5 o 0.6. Cada columna del histograma representa el delta promedio de puntos por barra para la duración comercial correspondiente (número de barras), donde el "promedio" se calcula mediante N^F (cuando F=1, obtendrás el promedio estándar). El indicador puede utilizar diferentes métodos para detectar automáticamente la "regularidad" (planitud) de la curva estadística: mínimo de varianza; mínimo de diferencia entre media, mediana y moda, como error cuadrático; mínimo del coeficiente de Gini; Conocer el factor óptimo puede ser útil para: normalizar los datos de entrada (cambios de precio) para redes neuronales y otros algoritmos de aprendizaje automático; estimar el número suficiente de barras para muestreo en un único vector de entrada para análisis en sistemas de trading de volatilidad; detectar símbolos y/o marcos temporales con anomalías (F no estándar o singularidad en la curva de distribución); Inputs Periodo — distancia máxima en barras (N) para recopilar estadísticas del rango de precios, por defecto 200; Factor — exponente para la "promediación" sobre distancias, por defecto 0, que significa autodetección; puedes ingresar un valor personalizado entre 0.0 y 1.0, por ejemplo, 0.525; Método — uno de los métodos de estimación de uniformidad: varianza, triple_M, Gini; MaxBars — límite de barras para calcular estadísticas, por defecto 0, que significa todas las barras disponibles; Nota: Si utilizas un número ilimitado o cientos de miles de barras en el gráfico, el cálculo puede tardar un poco; si esto es un problema, considera limitar el número de barras a decenas de miles. Outputs El indicador muestra un histograma azul del cambio promedio de precio por barra para cada distancia en el rango de distancias (1..Periodo) y para el factor de uniformidad seleccionado. Además, se presenta un número creciente de barras (distancia) como un segundo histograma (naranja), solo para referencia. Una tabla completa de factores probados y métricas correspondientes a la serie temporal actual se imprime en el log. Ejemplo de Log XAGUSD.c D1, Max.Distance: 500, Bars: 2641 Factor: 0.4, Result: var(0.4) mmm(0.4) gini(0.4)* [ factor ] [ mean ] [ variance ] [ skewness ] [ kurtosis ] [ median ] [ mode ] [ mmmse ] [ gini ] [0] 0.10000 1.85217 0.21976 -0.87694 0.07751 1.95822 2.30853 0.33811 0.13930 [1] 0.20000 1.07575 0.04083 -1.12699 0.96219 1.12715 1.25786 0.13285 0.10093 [2] 0.30000 0.62887 0.00525 -1.54472 3.00927 0.64878 0.68616 0.04114 0.05943 [3] 0.40000 0.37043 0.00021 -2.90499 13.36923 0.37546 0.37502 0.00394 0.01753 [4] 0.50000 0.22015 0.00028 1.53459 1.38333 0.21532 0.21461 0.00426 0.03779 [5] 0.60000 0.13222 0.00064 1.98696 4.05157 0.12372 0.10902 0.01661 0.09162 [6] 0.70000 0.08041 0.00072 2.60714 8.60950 0.07122 0.05862 0.01551 0.15135 [7] 0.80000 0.04964 0.00065 3.39070 15.85717 0.04099 0.03149 0.01289 0.21637 [8] 0.90000 0.03119 0.00054 4.37643 27.17457 0.02359 0.01692 0.01018 0.28652 [9] 1.00000 0.02002 0.00044 5.57319 43.86448 0.01358 0.00909 0.00787 0.36126 Capturas de Pantalla A continuación, se presentan capturas de pantalla que demuestran el indicador en 3 marcos temporales: D1, H1, M1. Cada gráfico contiene 2 instancias del indicador: la superior está configurada para la autodetección de F por Gini, y el valor encontrado (que varió entre 0.4 una vez, y 0.5 dos veces) se muestra en el título, marcado con un asterisco; la inferior está configurada para F=0.6; 2 indicadores Factor de Uniformidad en XAGUSD,D1 2 indicadores Factor de Uniformidad en XAGUSD,H1 2 indicadores Factor de Uniformidad en XAGUSD,M1

2025.04.07
PSAR Zigzag: El Indicador Sin Retardo para MetaTrader 5
MetaTrader5
PSAR Zigzag: El Indicador Sin Retardo para MetaTrader 5

Hola, traders! Hoy quiero hablarles sobre el PSAR Zigzag, un indicador que se aleja del tradicional zigzag que muchos de ustedes ya conocen. Este zigzag clásico tiene un propósito diferente: resaltar los movimientos pasados del mercado y, a menudo, se retrasa al confirmar el siguiente movimiento. Su funcionamiento se basa en la acción del precio y, por lo general, no se utiliza para detectar señales en tiempo real.El zigzag tradicional es más común en el análisis de puntos pivote históricos para predecir movimientos futuros de precios, pero el PSAR Zigzag es otra historia. Este indicador es un zigzag dinámico, basado en tendencias y, lo mejor, ¡sin retardo hasta la barra actual! Se basa en el algoritmo de tendencia SAR, que sigue tendencias sin retrasos. Anteriormente, se habían desarrollado zigzags de seguimiento de tendencias, incluido uno basado en el PSAR, pero solían retrasarse y producir piernas inválidas. ¿Por qué conformarse con un zigzag que tiene retardo si podemos tener uno sin él?Para asegurar la validez de las piernas, se utiliza un retroceso. Al buscar un máximo, encontrará el máximo más alto dentro de las barras de retroceso definidas, y lo mismo ocurre al buscar un mínimo. Esto significa que el final del segmento a veces se alinea con el máximo o mínimo, o con el soporte y resistencia más recientes. Es importante mencionar que el PSAR puede tener dificultades en mercados laterales, lo que representa una de sus limitaciones. Sin embargo, en tendencias, es un indicador bastante decente.La estructura de este zigzag es, sin duda, la parte más relevante del código. Ha sido diseñada para ser limpia, eficiente y fácil de mantener. Espero que aprecien el esfuerzo y la experimentación detrás de este indicador.Nuevas versiones:v1: Conecta el swing desde el máximo o mínimo de la vela, o los soportes y resistencias hallados con el retroceso.v2: Conecta estrictamente las piernas al máximo y mínimo de la vela en el punto de swing (tanto como sea posible).v3: Incluye lógica de paso hacia adelante para dar control total sobre el zigzag.

2025.04.01
Promediador Móvil T3: El Indicador Esencial para MetaTrader 5
MetaTrader5
Promediador Móvil T3: El Indicador Esencial para MetaTrader 5

El Indicador T3 es un promediador móvil avanzado creado por Tim Tillson, diseñado para reducir el retraso en las señales mientras mantiene una curva suave que filtra el ruido del mercado. A diferencia de los promedios móviles tradicionales, el T3 combina múltiples promedios móviles exponenciales (EMAs) para lograr una respuesta superior ante los movimientos reales del precio. Método de Cálculo El T3 se calcula utilizando una cascada de seis EMAs con un sistema de ponderación basado en el factor de volumen. La fórmula emplea coeficientes específicos para combinar estos EMAs: Primero, se calculan seis EMAs secuenciales donde cada EMA toma como entrada el resultado del EMA anterior. La fórmula del T3 combina estos EMAs con coeficientes derivados del factor de volumen: T3 = c1*EMA6 + c2*EMA5 + c3*EMA4 + c4*EMA3 Donde: c1 = -factor³ c2 = 3 factor² + 3factor³ c3 = -6 factor² - 3factor - 3*factor³ c4 = 1 + 3factor + factor³ + 3factor² Parámetros de Entrada T3_Length: Longitud del periodo para los EMAs (por defecto: 12) T3_Factor: Factor de volumen que controla la suavidad frente a la capacidad de respuesta (por defecto: 0.7) Valores más altos (cercanos a 1) generan líneas más suaves con mayor retraso. Valores más bajos (cercanos a 0) producen líneas más reactivas con menos retraso. Uso del Indicador El Indicador T3 puede ser utilizado para: Identificación de tendencias (dirección de la línea T3) Señales de trading (cuando el precio cruza la línea T3) Niveles de soporte y resistencia Filtrar el ruido a corto plazo del mercado Instalación Coloca el archivo en la carpeta de indicadores de tu MetaTrader 5 y adjúntalo a cualquier gráfico. Ajusta los parámetros de entrada para que se adapten a tu estrategia de trading y marco temporal.

2025.03.11
Fibonacci ZigZag: Configuración y Uso en MetaTrader 5
MetaTrader5
Fibonacci ZigZag: Configuración y Uso en MetaTrader 5

La Configuración Para utilizar el indicador ZigZag basado en Fibonacci, necesitaremos lo siguiente: 1 gráfico de zigzag 2 buffers de datos para los máximos y mínimos parámetros de entrada un conjunto de variables del sistema que se reinician cada vez que el indicador recalcula El array upWaves almacenará los máximos y el array dwWaves almacenará los mínimos. Variables del sistema: Debemos conocer el último tipo de ola, dónde comenzó, dónde terminó, la distancia en barras desde el inicio hasta el final. También necesitaremos una variable de máximo local, una de mínimo local, así como distancias en barras desde cada punto. //--- llevamos un registro del zigzag int wave_type=0; // tipo de ola [0] ninguna [1] arriba [2] abajo double wave_start_price=0.0; // precio de inicio de la ola double wave_end_price=0.0; // precio final de la ola int wave_start_distance=0; // distancia en barras desde el precio de inicio int wave_end_distance=0; // distancia en barras desde el precio final //--- seguimiento de precios máximos double high_mem=0.0; int distance_from_high=0; //--- seguimiento de precios mínimos double low_mem=0.0; int distance_from_low=0; //--- cálculo del ATR móvil double rollingAtr=0.0; int rollingAtrs=0; Finalmente, el ATR móvil y cuántos se han calculado. Luego creamos una función para reiniciar el sistema: void resetSystem(){ ArrayFill(upWaves,0,ArraySize(upWaves),0.0); ArrayFill(dwWaves,0,ArraySize(dwWaves),0.0); wave_type=0; wave_start_price=0.0; wave_end_price=0.0; wave_start_distance=0; wave_end_distance=0; high_mem=0.0; low_mem=0.0; distance_from_high=0; distance_from_low=0; rollingAtr=0.0; rollingAtrs=0; } Esto es lo estándar: llenar los arrays con ceros y reiniciar las variables del sistema. En OnInit configuramos los buffers, el gráfico y llamamos a reset por primera vez: SetIndexBuffer(0,upWaves,INDICATOR_DATA); SetIndexBuffer(1,dwWaves,INDICATOR_DATA); PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_ZIGZAG); PlotIndexSetInteger(0,PLOT_LINE_COLOR,0,Color); PlotIndexSetInteger(0,PLOT_LINE_WIDTH,Width); PlotIndexSetInteger(0,PLOT_LINE_STYLE,Style); resetSystem(); Ahora, ¡vamos al cálculo! Lo primero que debemos cuidar es el ATR móvil. Hasta que hayamos recolectado más barras que el período del ATR, no haremos nada más. La parte que maneja el ATR móvil es la siguiente: si no hemos recolectado más que el período, seguimos sumando el rango de las barras encontradas una vez que alcanzamos el período, realizamos la primera división (promedio) después, recortamos una porción del ATR móvil, que es ATR/período, y luego añadimos una nueva porción que es rango de la barra/período Colocamos la última parte primero porque sucederá con más frecuencia y no necesitaremos acceder a 2 declaraciones if. //--- gestionar el ATR rollingAtrs++; if(rollingAtrs>rollingAtrPeriod){ double new_portion=((high[i]-low[i])/_Point)/((double)rollingAtrPeriod); //--- eliminamos una porción antigua y añadimos una nueva rollingAtr=(rollingAtr)-(rollingAtr/((double)rollingAtrPeriod))+new_portion; } else if(rollingAtrshigh_mem&&low[i]>=low_mem){ double new_wave_size_in_atr_units=((high[i]-low_mem)/_Point)/rollingAtr; //--- si el nuevo tamaño de ola es válido if(new_wave_size_in_atr_units>=minSizeInAtrUnits){ //--- iniciamos una nueva ola ascendente wave_type=1; wave_start_price=low_mem; wave_start_distance=distance_from_low; wave_end_price=high[i]; wave_end_distance=0; upWaves[i]=high[i]; high_mem=high[i]; distance_from_high=0; low_mem=low[i]; distance_from_low=0; } } //--- si rompimos el mínimo y no el máximo else if(low[i]wave_end_price){ upWaves[i-wave_end_distance]=0.0; // eliminamos el precio final anterior de su posición en el array upWaves[i]=high[i]; wave_end_price=high[i]; wave_end_distance=0; high_mem=high[i]; distance_from_high=0; low_mem=low[i]; distance_from_low=0; } //--- verificamos el retroceso if(low[i]0.0){ double retraced=(size_of_retracement/size_of_wave)*100.0; double new_wave_size_in_atr_units=((wave_end_price-low_mem)/_Point)/rollingAtr; //--- si el nuevo tamaño de ola es válido if(new_wave_size_in_atr_units>=minSizeInAtrUnits){ //--- si el retroceso es significativo, iniciamos una ola descendente if(retraced>=retracement){ wave_type=-1; wave_start_price=high[i-distance_from_high]; wave_start_distance=distance_from_high; wave_end_price=low[i]; wave_end_distance=0; upWaves[i-wave_start_distance]=high_mem; dwWaves[i]=low[i]; high_mem=high[i]; distance_from_high=0; low_mem=low[i]; distance_from_low=0; } } } } } Hacemos lo opuesto cuando tenemos una ola descendente. Y hemos terminado, nuestro zigzag de retroceso está listo. Aquí está el zigzag con 23.6% de retroceso y 0.0 de tamaño mínimo de olas en unidades de ATR. Y aquí está el mismo zigzag con 3 de tamaño mínimo de olas en unidades de ATR.

2025.03.03
Primero Anterior 3 4 5 6 7 8 9 10 11 12 13 Siguiente Último