Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Visualizaciones:
18
Ranking:
(1)
Publicado:
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa




Filtro de tendencia alfa-beta con panel de control matricial de múltiples marcos temporales

1. Descripción general

El filtro de tendencia alfa-beta es un indicador predictivo de suavizado derivado de la teoría de control y el procesamiento de señales digitales. Conceptualmente, funciona como un filtro de Kalman simplificado en estado estacionario. Mientras que las medias móviles estándar (SMA, EMA, LWMA) se basan estrictamente en el promedio de datos históricos —y, por lo tanto, van intrínsecamente por detrás de la evolución en tiempo real de los precios—, el filtro alfa-beta estima de forma activa el precio «real» actual y la velocidad de la tendencia, al tiempo que elimina el ruido del mercado.

Esta implementación específica en MQL5 mejora el indicador clásico de una sola línea al incorporar un panel matricial con múltiples símbolos y múltiples marcos temporales. Permite a los operadores supervisar la tendencia alfa-beta en toda una cartera directamente desde un único gráfico, que se actualiza dinámicamente con cada tick.

2. El motor matemático

El filtro opera de forma iterativa sobre cada nueva barra de precios. Se basa en dos coeficientes de ajuste principales:

  • $\alpha$ (alfa): el coeficiente de sensibilidad al precio. Controla la ponderación que se otorga a la nueva observación de precio sin procesar frente a la predicción interna del filtro.

  • $\beta$ (beta): el coeficiente de sensibilidad a la velocidad. Controla la capacidad de respuesta ante los cambios en el impulso de la tendencia.

El algoritmo se ejecuta en dos fases distintas por barra:

Fase 1: La etapa de predicción

Antes de que se cierre la barra actual, el filtro pronostica el precio actual ($\hat{P}_{t}$) y la velocidad ($\hat{V}_{t}$) basándose en el estado calculado de la barra anterior:

$$\hat{P}_{t}=P_{t-1}+V_{t-1}$$
$$\hat{V}_{t}=V_{t-1}$$

Fase 2: El paso de actualización

Una vez que se publica el precio de cierre real ($Z_{t}$), el filtro calcula el error o residuo ($E_{t}$) entre su predicción y la realidad, y actualiza su estado interno:

$$E_{t}=Z_{t}-\hat{P}_{t}$$
$$P_{t}=\hat{P}_{t}+\alpha E_{t}$$
$$V_{t}=\hat{V}_{t}+\beta E_{t}$$

Donde:

  • $Z_{t}$: Precio de cierre real de la barra actual.

  • $P_{t}$: Estimación del precio actualizada y suavizada (representada en el gráfico).

  • $V_{t}$: Velocidad actualizada (utilizada para determinar el sesgo alcista o bajista de la tendencia).

3. Características principales de esta implementación

  • Suavizado predictivo sin retraso: La línea principal del indicador sigue la evolución del precio mucho más de cerca que las medias móviles exponenciales (EMA) tradicionales, lo que la convierte en una excelente base para estrategias de cruce rápido.

  • Representación gráfica dinámica codificada por colores: La línea principal del gráfico utiliza DRAW_COLOR_LINE para cambiar automáticamente entre azul (velocidad alcista) y rojo (velocidad bajista) en función del estado interno de $V_{t}$.

  • Panel de control matricial no intrusivo: una interfaz gráfica de usuario integrada en el gráfico realiza un seguimiento del estado de la tendencia (alcista, bajista, espera) de hasta 5 marcos temporales en una lista de símbolos externos definida por el usuario.

  • Gestión ligera de recursos: Los símbolos externos y los marcos temporales del panel de control no cargan el historial completo. El script extrae únicamente las barras mínimas necesarias mediante CopyClose() para calcular el estado en tiempo real, lo que evita el retraso del terminal.

4. Explicación de los parámetros de entrada

Configuración del motor de filtrado

  • inpAlpha (por defecto: $0,2$): El rango suele estar entre $0,1$ y $0,9$. Un valor de $\alpha$ más alto sigue de cerca el precio bruto (excelente para el scalping); un valor de $\alpha$ más bajo suaviza considerablemente la línea para ignorar las oscilaciones laterales (mejor para el swing trading).

  • inpBeta (por defecto: $0,05$): El rango suele estar entre $0,01$ y $0,5$. Un valor de $\beta$ más alto reacciona de forma agresiva a los cambios repentinos de impulso. Un valor de $\beta$ muy bajo asume una tendencia estable e inquebrantable.

Configuración de la cuadrícula del panel de control

  • inpSymbols (por defecto: «EURUSD,GBPUSD,USDJPY,AUDUSD»): Una cadena separada por comas con los símbolos que deseas seguir. El código la analiza automáticamente mediante StringSplit().

  • Conmutadores de intervalos de tiempo (desde showM5 hasta showD1): Entradas booleanas que te permiten personalizar qué columnas aparecen en tu panel de control de la matriz.

5. Arquitectura y aspectos destacados del código

Para los desarrolladores de MQL5 que revisen el código fuente, tengan en cuenta las siguientes decisiones estructurales:

  • Indexación de series temporales: MQL5 indexa de forma nativa las matrices de la más antigua a la más reciente. Para ajustarse a la lógica de negociación estándar (donde [0] es la barra actual en tiempo real), el código utiliza de forma intensiva ArraySetAsSeries(buffer, true) para todos los búferes de indicadores y las matrices recuperadas.

  • Ayuda para la extracción de estado: La función GetStateForTarget() es un bucle independiente utilizado por el panel de control. Obtiene 50 barras de precios de cierre para el símbolo o marco temporal de destino, inicializa el motor de predicción y devuelve un estado entero (0 para alcista, 1 para bajista) sin necesidad de llamadas externas a iCustom.

  • Desinicialización limpia de objetos: La función OnDeinit() recorre el prefijo de la interfaz de usuario (AB_Matrix_) para garantizar que todas las etiquetas gráficas se eliminen del gráfico en el momento en que se retira el indicador.

6. Aplicaciones de trading

  • Configuración para scalping: Prueba con un $\alpha$ de 0,45 y un $\beta$ de 0,12. La línea codificada por colores cambiará rápidamente, lo que te permitirá detectar microtendencias en los gráficos M1 o M5.

  • Configuración para swing macro: Reduce los valores a un $\alpha$ de 0,15 y un $\beta$ de 0,02. El indicador se estabilizará durante el ruido intradía, lo que te mantendrá en la operación hasta que se produzca un cambio de velocidad macroscópico genuino.

  • Confluencia matricial: Utiliza el panel de control para realizar operaciones en tu gráfico actual únicamente cuando las celdas H1, H4 y D1 de ese símbolo específico estén completamente alineadas en el mismo color.

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

SuperTrend_Amarnath_Kondiyan_Mohan SuperTrend_Amarnath_Kondiyan_Mohan

Supertendencia con gestión de TP y SL mediante la estrategia «basket»

CKS Position Risk Dashboard CKS Position Risk Dashboard

Un panel de control de MT5 de solo lectura para el cálculo del tamaño de los lotes en función del riesgo, el estado de la cuenta, los límites de volumen del bróker y la exposición actual a los símbolos.

Trend Flasher -AKM Trend Flasher -AKM

Un panel de control de supertendencias con múltiples divisas y múltiples símbolos

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.