Pro Parabolic SAR Flip Signal Multi Filter MT5
- Indicadores
- Versión: 2.11
- Activaciones: 5
Sistema de filtros múltiples SAR parabólico para MT5: motor algorítmico de inversión de tendencia
1. DESCRIPCIÓN GENERAL DEL PRODUCTO Y ARQUITECTURA OPERATIVA
El sistema de filtrado múltiple Parabolic SAR para MT5 es un indicador profesional de análisis técnico multicomponente diseñado para la plataforma MetaTrader 5. El indicador combina el clásico sistema parabólico de tiempo y precio de J. Welles Wilder con una avanzada arquitectura de filtrado modular que comprende 17 motores de validación secundarios distintos.
El objetivo principal de este software es eliminar las señales de ruptura falsas que suelen asociarse a las implementaciones independientes del SAR parabólico en condiciones de mercado de consolidación o erráticas. En lugar de generar señales basadas únicamente en intersecciones de curvas de precios individuales, el indicador evalúa el impulso direccional, las medias móviles en múltiples marcos temporales, los niveles de agotamiento de la tendencia, los osciladores, las zonas dinámicas de soporte y resistencia, y los niveles de retroceso de Fibonacci automatizados antes de mostrar las flechas de entrada de compra y venta.
El programa funciona íntegramente dentro del entorno de ejecución nativo de MQL5, utilizando una gestión optimizada de los identificadores de indicadores, la asignación interna de memoria en matrices y cálculos vectoriales para garantizar un impacto de latencia nulo en las operaciones de la terminal.
2. PRINCIPIO DE FUNCIONAMIENTO Y MECÁNICA DE GENERACIÓN DE SEÑALES
El proceso de cálculo del indicador se ejecuta mediante un modelo de validación secuencial en dos etapas: detección primaria de cambio de tendencia seguida de una confirmación secundaria mediante múltiples filtros.
2.1. Lógica de inversión primaria del SAR parabólico
La base algorítmica principal realiza un seguimiento del desplazamiento del precio utilizando la fórmula parabólica de Welles Wilder:
- SAR alcista: SAR(t) = SAR(t-1) + AF * [EP(t-1) - SAR(t-1)], donde EP es el máximo extremo de la tendencia alcista actual.
- SAR a la baja: SAR(t) = SAR(t-1) - AF * [SAR(t-1) - EP(t-1)], donde EP es el mínimo extremo de la tendencia bajista actual.
- El factor de aceleración (AF) se inicializa en InpStep (por defecto: 0,02) y se incrementa en InpStep con cada nuevo máximo o mínimo registrado, hasta alcanzar InpMaximum (por defecto: 0,20).
Una inversión direccional válida («cambio») se produce estrictamente tras una transición de polaridad:
- Condición de cambio alcista: el SAR parabólico de la vela anterior se situó en el máximo anterior o por encima de él (SAR[i-1] >= Máximo[i-1]), y el SAR parabólico de la vela actual se sitúa en el mínimo actual o por debajo de él (SAR[i] <= Mínimo[i]).
- Condición de cambio bajista: el SAR parabólico de la vela anterior se situó en el mínimo anterior o por debajo de este (SAR[i-1] <= Mínimo[i-1]), y el SAR parabólico de la vela actual se sitúa en el máximo actual o por encima de este (SAR[i] >= Máximo[i]).
2.2. Modelo de ejecución estricto sin repintado
La integridad de la señal se rige por reglas explícitas de indexación de barras dentro de OnCalculate:
- Los trazados de flechas (BuyBuffer y SellBuffer) y los envíos de alertas se calculan estrictamente sobre las barras cerradas (rates_total - 2, lo que representa la barra 1 en relación con el precio en tiempo real).
- Las barras en formación activas (rates_total - 1, que representa la barra 0) se restablecen explícitamente a EMPTY_VALUE con cada tick entrante.
- Una vez que se cierra una barra y se traza una flecha, sus coordenadas, valores de búfer y marcadores gráficos permanecen fijos de forma permanente en los datos históricos. Las señales no desaparecen, no cambian de posición ni se recalculan ante movimientos posteriores del precio.
2.3. Lógica de ejecución de los filtros
Cuando se produce un cambio de tendencia SAR primario en la vela [i], el algoritmo evalúa simultáneamente todas las condiciones de filtro habilitadas. La señal de entrada se valida si y solo si todos los filtros activos devuelven un estado booleano verdadero para esa barra:
- Salida de señal alcista: Inversión alcista del SAR == Verdadero Y Todos los filtros de compra activos == Verdadero. La flecha se traza en Mínimo[i] - (Rango * InpOffsetATR).
- Señal bajista: Inversión bajista del SAR == Verdadero Y Todos los filtros de venta activos == Verdadero. La flecha se traza en Máximo[i] + (Rango * Desplazamiento de entrada ATR).
3. ESPECIFICACIONES TÉCNICAS DE LOS 17 FILTROS DE CONFLUENCIA
La arquitectura incluye 17 módulos de filtro configurables derivados de modelos técnicos clásicos, lo que permite perfiles operativos personalizados:
- Filtro 01: Filtro de cruce del RSI (Use_RSI_Cross_Filter)
Evalúa las condiciones límite del impulso relativo utilizando el RSI(14). Una señal de compra requiere que el RSI cruce por encima del umbral de sobreventa (RSI[i] > sobreventa Y RSI[i-1] <= sobreventa). Una señal de venta requiere que el RSI cruce por debajo del umbral de sobrecompra (RSI[i] < sobrecompra Y RSI[i-1] >= sobrecompra).
- Filtro 02: Filtro de fuerza de tendencia ADX (Use_ADX_Filter)
Mide el impulso direccional del mercado mediante el Índice Directional Promedio (ADX). Tanto las ejecuciones de compra como las de venta requieren que la línea principal del ADX sea igual o superior a ADX_Min_Level (por defecto: 20,0), lo que filtra las fases de oscilación sin tendencia.
- Filtro 03: Filtro de media móvil única (Use_MA_Filter)
Aplica una alineación direccional macro en relación con una única media móvil. Las señales de compra requieren que Close[i] > MA[i]. Las señales de venta requieren que Close[i] < MA[i].
- Filtro 04: Filtro de Senkou Span B de Ichimoku (Use_Ichimoku_Filter)
Utiliza la línea de equilibrio dinámico de ciclo más largo del sistema Ichimoku Kinko Hyo (período por defecto 52, desplazada 26 barras). Las señales de compra requieren que Close[i] > Senkou Span B[i]. Las señales de venta requieren que Close[i] < Senkou Span B[i].
- Filtro 05: Filtro RSI 75 de largo plazo (Use_RSI75_Filter)
Aplica un índice de fuerza relativa de ciclo largo (período 75) como detector de tendencias macro. Las señales de compra requieren que RSI75[i] > 50,0 (dominio alcista). Las señales de venta requieren que RSI75[i] < 50,0 (dominio bajista).
- Filtro 06: Filtro de doble media móvil (Use_DoubleMA_Filter)
Emplea dos medias móviles exponenciales (por defecto: EMA rápida de 30 frente a EMA lenta de 140). Las señales de compra requieren que la EMA rápida[i] sea mayor que la EMA lenta[i]. Las señales de venta requieren que la EMA rápida[i] sea menor que la EMA lenta[i].
- Filtro 07: Filtro multimodo del oscilador Awesome (Use_AO_Filter)
Ofrece tres mecanismos de subfiltrado seleccionables calculados a partir del impulso del precio mediano (HL/2):
a) Filtro de volumen AO: AO[i] >= AO_Buy_Min para comprar; AO[i] <= AO_Sell_Max para vender.
b) Filtro de color del AO: AO[i] > AO[i-1] (barra verde) para comprar; AO[i] < AO[i-1] (barra roja) para vender.
c) Filtro AO cero: AO[i] > AO[i-1] Y AO[i] > 0 para compra; AO[i] < AO[i-1] Y AO[i] < 0 para venta.
- Filtro 08: Filtro SAR parabólico secundario (Use_SAR_Filter)
Aplica un cálculo independiente de la línea de base del SAR parabólico secundario con parámetros de paso y máximo distintos para verificar la trayectoria dual. Para comprar se requiere que Close[i] > SAR_Filter[i]; para vender se requiere que Close[i] < SAR_Filter[i].
- Filtro 09: Filtro de acción del precio Heiken Ashi (Use_HeikenAshi_Filter)
Calcula internamente barras sintéticas de acción del precio (HA_Close = (O+H+L+C)/4, HA_Open = (HA_Open[prev]+HA_Close[prev])/2). Para comprar se requiere que HA_Close[i] > HA_Open[i] (cuerpo de vela alcista); para vender se requiere que HA_Close[i] < HA_Open[i] (cuerpo de vela bajista).
- Filtro 10: Filtro de tendencia del índice de canal de materias primas (Use_CCI_Filter)
Evalúa la desviación cíclica respecto a la media estadística a lo largo de CCI_Period (por defecto: 50). Para comprar se requiere que CCI[i] > 0; para vender se requiere que CCI[i] < 0.
- Filtro 11: Filtro de sobrecompra/sobreventa del CCI (Use_CCI_OBOS_Filter)
Mide los extremos estadísticos de los precios en períodos más cortos (por defecto: 14). Para comprar se requiere que CCI[i] > CCI_Overbought (por defecto: 100,0); para vender se requiere que CCI[i] < CCI_Oversold (por defecto: -100,0).
- Filtro 12: Filtro de tendencia del índice de vigor relativo (Use_RVI_Filter)
Analiza la posición del precio de cierre en relación con los rangos de las velas a lo largo de RVI_Period (por defecto: 75). Para comprar se requiere que RVI_Main[i] > 0; para vender se requiere que RVI_Main[i] < 0.
- Filtro 13: Filtro de cruce de la línea de señal del RVI (Use_RVI_Signal_Filter)
Realiza un seguimiento de los cruces de microimpulso entre la línea principal del RVI y la línea de señal (media móvil ponderada de 4 períodos del RVI). Para comprar se requiere que RVI_Main[i] > RVI_Signal[i]; para vender se requiere que RVI_Main[i] < RVI_Signal[i].
- Filtro 14: Filtro de señal del histograma del MACD (Use_MACD_Filter)
Mide el impulso de convergencia/divergencia a través del diferencial del histograma del MACD (línea principal - línea de señal). Para comprar se requiere que MACD_Histogram[i] > 0; para vender se requiere que MACD_Histogram[i] < 0.
- Filtro 15: Filtro de la línea cero del MACD (Use_MACD_Zero_Filter)
Evalúa la posición absoluta de la línea principal del MACD con respecto a cero. Para comprar se requiere que MACD_Main[i] > 0; para vender se requiere que MACD_Main[i] < 0.
- Filtro 16: Filtro de zonas de soporte y resistencia (Use_SR_Filter)
Analiza las barras históricas a lo largo de SR_Period (por defecto: 50) para aislar los máximos de oscilación (resistencia) y los mínimos de oscilación (soporte). Evalúa si el mínimo o máximo de la vela desencadenante toca o penetra dentro de una zona de tolerancia de SR_Zone_Points * _Point. Para comprar se requiere una interacción baja con el soporte; para vender, una interacción alta con la resistencia.
- Filtro 17: Filtro algorítmico de retroceso de Fibonacci (Use_Fib_Filter)
Calcula las oscilaciones estructurales del mercado utilizando un algoritmo ZigZag dinámico de 3 parámetros (ZigZag_Depth: 12, ZigZag_Deviation: 5, ZigZag_Backstep: 3). Identifica el máximo y el mínimo más recientes, determina la dirección del impulso, calcula los límites del retroceso de Fibonacci entre Fib_Level_1 (por defecto: 0,382) y Fib_Level_2 (por defecto: 0,618), y valida las señales únicamente cuando los rangos de las velas interactúan con esta zona de retroceso de la proporción áurea.
4. DIRECTORIO COMPLETO DE PARÁMETROS DE ENTRADA
La siguiente documentación abarca todos los parámetros de entrada disponibles en la pestaña «Entradas» de MetaTrader 5:
=== Parámetros del SAR ===
- InpStep (Tipo: doble | Valor por defecto: 0,02 | Unidad: Factor): Factor de aceleración inicial (AF) para los cálculos del SAR parabólico. Controla la sensibilidad de la curva parabólica durante el inicio de la formación de la tendencia.
- InpMaximum (Tipo: doble | Valor por defecto: 0,20 | Unidad: Factor): Límite máximo para el factor de aceleración. Evita que el paso del SAR se expanda más allá de este límite, independientemente de la duración de la tendencia.
=== Ajustes de visualización ===
- InpSARColor (Tipo: color | Valor por defecto: clrDodgerBlue): Color asignado a los puntos de la trayectoria del SAR parabólico trazados directamente sobre las velas del gráfico.
- InpBuyColor (Tipo: color | Por defecto: clrAqua): Color asignado a los marcadores de flecha de entrada alcista confirmada.
- InpSellColor (Tipo: color | Predeterminado: clrRed): Color asignado a los marcadores de flecha de entrada bajista confirmados.
- InpArrowCodeBuy (Tipo: int | Por defecto: 233 | Unidad: Código Wingdings): Identificador de glifo de fuente para las flechas de señal alcista (233 representa una flecha hacia arriba).
- InpArrowCodeSell (Tipo: entero | Valor por defecto: 234 | Unidad: código Wingdings): Identificador de glifo de fuente para las flechas de señal bajista (234 representa una flecha hacia abajo).
- InpArrowWidth (Tipo: int | Valor por defecto: 2 | Rango: de 1 a 5): Grosor en píxeles y tamaño visual de los marcadores de flecha en el gráfico.
- InpOffsetATR (Tipo: double | Valor por defecto: 0,3 | Unidad: Ratio del rango de la vela): Distancia de desplazamiento vertical entre el máximo/mínimo de la barra y el gráfico de la flecha, calculada como el rango de la vela multiplicado por este factor.
=== Alertas y notificaciones ===
- InpAlerts (Tipo: bool | Valor por defecto: true): Activa los cuadros de diálogo emergentes nativos de la terminal cuando se cierra una señal en la barra 1.
- InpAlertSound (Tipo: bool | Por defecto: true): Activa la reproducción de audio a través de los altavoces de la terminal tras la confirmación de la señal.
- InpAlertPush (Tipo: bool | Predeterminado: true): Envía notificaciones push a las aplicaciones de MetaTrader para Android e iOS vinculadas a través del ID de MetaQuotes.
- InpAlertEmail (Tipo: bool | Predeterminado: false): Envía alertas automáticas por correo electrónico a través de la configuración SMTP de la terminal.
- InpSoundFile (Tipo: cadena | Valor predeterminado: «alert.wav»): Nombre del archivo de audio ubicado en el directorio MT5/Sounds para la notificación sonora.
=== Ajustes del filtro de cruce del RSI ===
- Use_RSI_Cross_Filter (Tipo: bool | Por defecto: false): Activa o desactiva el módulo de filtro de cruce de sobreventa/sobrecompra del RSI.
- RSI_Length (Tipo: entero | Valor por defecto: 14 | Unidad: barras): Período de cálculo retrospectivo para el índice de fuerza relativa.
- RSI_Price_Source (Tipo: ENUM_APPLIED_PRICE | Predeterminado: PRICE_CLOSE): Tipo de serie de precios utilizada para calcular los valores del RSI.
- Oversold (Tipo: double | Valor por defecto: 30,0 | Unidad: Nivel del índice): Umbral inferior para la validación del cruce de impulso alcista.
- Sobrecompra (Tipo: double | Valor por defecto: 70,0 | Unidad: Nivel del índice): Umbral superior para la validación del cruce de impulso bajista.
=== Ajustes del filtro ADX ===
- Use_ADX_Filter (Tipo: bool | Valor por defecto: false): Activa o desactiva el filtro de volatilidad/tendencia del Índice de Movimiento Directional Medio (ADX).
- ADX_Period (Tipo: entero | Valor por defecto: 10 | Unidad: Barras): Período del ciclo de suavizado para la evaluación del movimiento direccional.
- ADX_Min_Level (Tipo: doble | Predeterminado: 20,0 | Unidad: Nivel del índice): Umbral mínimo de fuerza de la tendencia necesario antes de que se confirme cualquier señal.
=== Ajustes del filtro de media móvil simple ===
- Use_MA_Filter (Tipo: bool | Predeterminado: false): Activa o desactiva el filtro de dirección de tendencia de la media móvil simple de referencia.
- MA_Period (Tipo: int | Valor por defecto: 50 | Unidad: Barras): Ventana de promediado retrospectivo para la línea de media móvil.
- MA_Method (Tipo: ENUM_MA_METHOD | Valor por defecto: MODE_SMA): Algoritmo matemático de suavizado (SMA, EMA, SMMA o LWMA).
- MA_Shift (Tipo: int | Valor por defecto: 0 | Unidad: Barras): Desplazamiento horizontal hacia delante o hacia atrás aplicado al búfer de la media móvil.
=== Ajustes del filtro Ichimoku Senkou Span B ===
- Use_Ichimoku_Filter (Tipo: bool | Por defecto: false): Activa o desactiva el filtro de tendencia Senkou Span B de Ichimoku Kinko Hyo.
- Ichimoku_SenkouB (Tipo: int | Valor por defecto: 52 | Unidad: Barras): Periodo de retroceso para el cálculo de la media de Senkou Span B ((máximo más alto + mínimo más bajo) / 2 sobre 52 barras).
- Ichimoku_Kijun (Tipo: entero | Valor por defecto: 26 | Unidad: barras): Índice de desplazamiento hacia adelante aplicado a las coordenadas del Senkou Span B.
=== Ajustes del filtro RSI 75 ===
- Use_RSI75_Filter (Tipo: bool | Predeterminado: false): Activa o desactiva el filtro de tendencia de la línea media del RSI de período macro.
- RSI_Filter_Period (Tipo: int | Por defecto: 75 | Unidad: Barras): Período de retrospectiva ampliado para el cálculo del RSI macro.
=== Ajustes del filtro de doble media móvil ===
- Use_DoubleMA_Filter (Tipo: booleano | Predeterminado: false): Activa o desactiva el módulo de orientación de tendencia de la media móvil doble.
- MA_A_Period (Tipo: entero | Predeterminado: 30 | Unidad: Barras): Duración del ciclo de promediado para la media móvil rápida A.
- MA_A_Method (Tipo: ENUM_MA_METHOD | Por defecto: MODE_EMA): Método de suavizado aplicado a la media móvil A.
- MA_A_Applied (Tipo: ENUM_APPLIED_PRICE | Por defecto: PRICE_CLOSE): Fuente de precios aplicada para la media móvil A.
- MA_A_Shift (Tipo: int | Valor por defecto: 0 | Unidad: Barras): Desplazamiento horizontal de la media móvil A.
- MA_B_Period (Tipo: int | Valor por defecto: 140 | Unidad: Barras): Duración del ciclo de promediado para la media móvil lenta B.
- MA_B_Method (Tipo: ENUM_MA_METHOD | Valor por defecto: MODE_EMA): Método de suavizado aplicado a la media móvil B.
- MA_B_Applied (Tipo: ENUM_APPLIED_PRICE | Por defecto: PRICE_CLOSE): Fuente de precios aplicada para la media móvil B.
- MA_B_Shift (Tipo: int | Valor por defecto: 0 | Unidad: Barras): Desplazamiento horizontal de la media móvil B.
=== Ajustes del filtro del oscilador Awesome ===
- Use_AO_Filter (Tipo: bool | Por defecto: false): Interruptor principal que activa la evaluación del Oscilador Impresionante.
- Use_AO_Volume_Filter (Tipo: bool | Por defecto: false): Valida las señales basándose en umbrales de magnitud absolutos del histograma del Awesome Oscillator.
- AO_Buy_Min (Tipo: double | Valor por defecto: 4,0 | Unidad: valor del oscilador): Umbral positivo mínimo requerido para que se active la señal de compra.
- AO_Sell_Max (Tipo: doble | Valor por defecto: -4,0 | Unidad: valor del oscilador): Umbral negativo máximo necesario para que se active una señal de venta.
- Use_AO_Color_Filter (Tipo: bool | Por defecto: false): Valida las señales basándose en la variación de la pendiente entre barras (barras verdes/rojas).
- Use_AO_Zero_Filter (Tipo: bool | Valor por defecto: false): Impone una alineación estricta en la que las señales de compra requieren una expansión del AO por encima de cero, y las señales de venta requieren una expansión del AO por debajo de cero.
=== Ajustes del filtro SAR parabólico ===
- Use_SAR_Filter (Tipo: bool | Por defecto: false): Activa o desactiva la confirmación de la tendencia del SAR parabólico de la línea de base secundaria.
- SAR_Step (Tipo: doble | Predeterminado: 0,02 | Unidad: Factor): Factor de aceleración inicial para el filtro SAR secundario.
- SAR_Maximum (Tipo: double | Valor por defecto: 0,2 | Unidad: Factor): Límite máximo del factor de aceleración para el filtro SAR secundario.
=== Ajustes del filtro Heiken Ashi ===
- Use_HeikenAshi_Filter (Tipo: bool | Predeterminado: false): Activa o desactiva el filtro de polaridad de las velas Heiken Ashi en tiempo real.
=== Ajustes del filtro de tendencia CCI ===
- Use_CCI_Filter (Tipo: bool | Por defecto: false): Activa o desactiva el filtro de tendencia del Índice de Canal de Materias Primas (CCI) con línea cero.
- CCI_Period (Tipo: int | Predeterminado: 50 | Unidad: Barras): Ventana de promedio retrospectivo para el cálculo del CCI de tendencia.
- CCI_Applied (Tipo: ENUM_APPLIED_PRICE | Por defecto: PRICE_CLOSE): Tipo de serie de precios aplicada para el cálculo del CCI de tendencia.
=== Ajustes del filtro de sobrecompra y sobreventa del CCI ===
- Use_CCI_OBOS_Filter (Tipo: bool | Por defecto: false): Activa o desactiva el filtro de barreras estadísticas extremas mediante el CCI de corto plazo.
- CCI_OBOS_Period (Tipo: int | Por defecto: 14 | Unidad: Barras): Período de retrospectiva para la evaluación de los límites del oscilador.
- CCI_OBOS_Applied (Tipo: ENUM_APPLIED_PRICE | Por defecto: PRICE_CLOSE): Fuente de datos de precios aplicada para el CCI OBOS.
- CCI_Overbought (Tipo: double | Por defecto: 100,0 | Unidad: Nivel): Barrera estadística superior que activa la aprobación del filtro de compra.
- CCI_Oversold (Tipo: double | Valor por defecto: -100,0 | Unidad: Nivel): Barrera estadística inferior que activa la aprobación del filtro de venta.
=== Ajustes del filtro de tendencia RVI ===
- Use_RVI_Filter (Tipo: bool | Por defecto: false): Activa o desactiva la validación de la tendencia del Índice de Vigor Relativo (RVI) en el eje cero.
- RVI_Period (Tipo: entero | Valor por defecto: 75 | Unidad: Barras): Ventana de promedio retrospectivo para el cálculo del RVI de ciclo largo.
=== Ajustes del filtro de señales del RVI ===
- Use_RVI_Signal_Filter (Tipo: booleano | Predeterminado: false): Activa o desactiva la confirmación del cruce entre la línea principal y la línea de señal del RVI.
- RVI_Signal_Period (Tipo: int | Por defecto: 20 | Unidad: Barras): Período de retrospectiva para la evaluación rápida de la línea de señal del RVI.
=== Ajustes del filtro de señal del MACD ===
- Use_MACD_Filter (Tipo: bool | Por defecto: false): Activa o desactiva la confirmación del impulso del histograma del MACD (línea principal frente a línea de señal).
- MACD_FastEMA (Tipo: int | Predeterminado: 12 | Unidad: Barras): Período de la media móvil exponencial rápida en el MACD.
- MACD_SlowEMA (Tipo: int | Por defecto: 26 | Unidad: Barras): Período de la media móvil exponencial lenta en el MACD.
- MACD_SignalSMA (Tipo: entero | Valor por defecto: 9 | Unidad: barras): Período de la media móvil simple de la línea de señal en el MACD.
- MACD_Applied (Tipo: ENUM_APPLIED_PRICE | Valor por defecto: PRICE_CLOSE): Tipo de precio aplicado para los cálculos de entrada del MACD.
=== Ajustes del filtro de nivel 0 del MACD ===
- Use_MACD_Zero_Filter (Tipo: bool | Por defecto: false): Activa o desactiva el filtro de polaridad de la línea principal del MACD con respecto a la línea de referencia cero.
=== Ajustes del filtro de soporte y resistencia ===
- Use_SR_Filter (Tipo: bool | Por defecto: false): Activa o desactiva el filtro dinámico de rebote en las zonas de precios máximos y mínimos.
- SR_Period (Tipo: entero | Valor por defecto: 50 | Unidad: Barras): Ventana retrospectiva analizada para determinar los picos y valles estructurales.
- SR_Zone_Points (Tipo: doble | Valor por defecto: 80 | Unidad: puntos): Margen de proximidad alrededor de las líneas de soporte y resistencia.
=== Ajustes del filtro de Fibonacci ===
- Use_Fib_Filter (Tipo: bool | Predeterminado: false): Activa o desactiva el filtro algorítmico de retroceso de oscilaciones ZigZag.
- Fib_Level_1 (Tipo: double | Valor por defecto: 0,382 | Unidad: Ratio): Primer límite de retroceso (normalmente el ratio de Fibonacci del 38,2 %).
- Fib_Level_2 (Tipo: doble | Predeterminado: 0,618 | Unidad: Ratio): Segundo límite de retroceso (normalmente el ratio de Fibonacci del 61,8 %).
- ZigZag_Depth (Tipo: entero | Valor por defecto: 12 | Unidad: Barras): Umbral mínimo de barras requerido sin que se produzca un nuevo extremo para formar un tramo de oscilación.
- ZigZag_Deviation (Tipo: entero | Valor por defecto: 5 | Unidad: puntos): Umbral mínimo de distancia de precio necesario para validar una desviación de oscilación.
- ZigZag_Backstep (Tipo: entero | Valor por defecto: 3 | Unidad: Barras): Ventana mínima de separación entre barras para puntos de oscilación consecutivos.
5. ASIGNACIÓN DE BÚFER E INTEGRACIÓN CON ASESORES EXPERTOS (EA)
El indicador cuenta con una indexación de búfer estandarizada, lo que facilita la recuperación fluida de datos dentro de asesores expertos personalizados o utilidades de trading a través de la función nativa iCustom de MQL5:
Estructura de asignación de búferes:
- Índice de búfer 0: Valores de la trayectoria del SAR parabólico (niveles de precio de doble precisión en coma flotante).
- Índice de búfer 1: Valores de las flechas de señal alcista de compra confirmada (punto de ejecución del precio en la barra 1; devuelve EMPTY_VALUE si no hay señal).
- Índice de búfer 2: Valores de la flecha de señal de venta bajista confirmada (punto de ejecución del precio en la barra 1; devuelve EMPTY_VALUE si no hay señal).
Ejemplo de integración (código fuente MQL5):
Para extraer señales verificadas que no se repintan dentro de un asesor experto, ejecuta el siguiente patrón de implementación:
- Inicializa el identificador dentro de OnInit():
int IndicatorHandle = iCustom(_Symbol, _Period, "ParabolicSAR_Signal_MultiFilter_v2_NoRepaint");
- Recupera las señales dentro de OnTick() al cierre de la barra (evaluando la barra 1):
double buySignal[], sellSignal[];
ArraySetAsSeries(buySignal, true);
ArraySetAsSeries(sellSignal, true);
CopyBuffer(IndicatorHandle, 1, 1, 1, buySignal);
CopyBuffer(IndicatorHandle, 2, 1, 1, sellSignal);
if(buySignal[0] != EMPTY_VALUE && buySignal[0] > 0)
{
// Ejecutar operaciones de orden de compra
}
else if(señalDeVenta[0] != VALOR_VACÍO && señalDeVenta[0] > 0)
{
// Ejecutar operaciones de orden de venta
}
6. CONFIGURACIONES DE FUNCIONAMIENTO RECOMENDADAS
Aunque el software funciona en todos los marcos temporales de los gráficos y con todos los valores líquidos compatibles con MetaTrader 5, se deben seleccionar perfiles de parámetros distintos en función de la metodología de negociación:
Perfil A: Scalping intradía basado en el impulso
- Instrumentos objetivo: EURUSD, GBPUSD, USDJPY, XAUUSD.
- Intervalos de tiempo compatibles: M5, M15.
- Configuración recomendada:
- SAR base: InpStep = 0,02, InpMaximum = 0,20.
- Filtros activos: Use_DoubleMA_Filter = true (EMA 30 / EMA 140), Use_ADX_Filter = true (Período 10, Nivel mínimo 22,0), Use_CCI_Filter = true (Período 50).
- Justificación: Aísla las microexpansiones direccionales alineadas con la estructura de las medias móviles intermedias, al tiempo que rechaza las oscilaciones laterales del mercado.
Perfil B: Ejecución de swing y seguimiento de tendencias
- Instrumentos objetivo: pares de divisas líquidos, CFD sobre índices, materias primas.
- Marcos temporales compatibles: H1, H4, D1.
- Configuración recomendada:
- SAR base: InpStep = 0,015, InpMaximum = 0,15.
- Filtros activos: Use_Ichimoku_Filter = true (Senkou B 52, Kijun 26), Use_MACD_Filter = true (12, 26, 9), Use_Fib_Filter = true (ZigZag Depth 12, Deviation 5, Backstep 3).
- Justificación: Detecta los principales cambios de tendencia macroeconómicos tras rupturas confirmadas de los precios más allá del límite de equilibrio de Ichimoku, combinadas con retrocesos según la proporción áurea.
Perfil C: Rebote en soportes/resistencias estructurales
- Instrumentos objetivo: pares de divisas e índices de alta volatilidad.
- Marcos temporales compatibles: M15, M30, H1.
- Configuración recomendada:
- SAR base: InpStep = 0,02, InpMaximum = 0,20.
- Filtros activos: Use_SR_Filter = true (período 50, puntos de zona 80), Use_RSI_Cross_Filter = true (longitud 14, sobreventa 30, sobrecompra 70).
- Justificación: Detecta las transiciones de inversión del SAR parabólico que se producen directamente dentro de los límites de reacción de los principales soportes o resistencias estructurales.
7. RENDIMIENTO, GESTIÓN DE RECURSOS Y CONFIGURACIÓN DEL TERMINAL
- Eficiencia algorítmica: El código utiliza cálculos de anillos internos optimizados y libera los identificadores durante OnDeinit mediante IndicatorRelease. La validación de barras mínimas evita el procesamiento prematuro en gráficos con historial insuficiente.
- Configuración de notificaciones push: Para recibir alertas de señales en dispositivos iOS/Android, introduce tu ID de MetaQuotes en Herramientas -> Opciones -> Notificaciones, asegúrate de que la casilla «Habilitar notificaciones push» esté marcada y comprueba que InpAlertPush esté establecido en true.
- Archivos de sonido: Las alertas acústicas se basan en archivos de audio ubicados en la carpeta «Sounds» de la terminal. Asegúrate de que InpSoundFile apunte a un archivo .wav válido en tu directorio.
8. AVISO SOBRE RIESGOS REGULATORIOS
La negociación de divisas, índices, materias primas, criptomonedas y otros derivados financieros conlleva un grado considerable de riesgo y puede no ser adecuada para todos los inversores. La elevada volatilidad del mercado y el apalancamiento financiero pueden jugar tanto a su favor como en su contra, lo que podría dar lugar a la pérdida de parte o la totalidad de su capital depositado.
Este software es una herramienta de indicadores analíticos y operativos diseñada exclusivamente para ayudar a los operadores en la evaluación técnica; no constituye asesoramiento financiero, de inversión ni de negociación, ni garantiza resultados rentables. El análisis histórico de la evolución de los precios, los modelos estadísticos de backtesting y las métricas de rendimiento pasado no constituyen indicadores fiables de los resultados operativos futuros. Los usuarios deben probar exhaustivamente este producto en una cuenta demo simulada, en condiciones de negociación realistas, antes de utilizarlo en entornos de mercado reales.
