Crear indicador TAMA

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #241931 quote
    repropelrepropel
    Participant
    Junior

    Hola,

    He visto recientemente que se ha publicado en la revista IFTA del 2025 un articulo en el que hacen referencia a un indicador llamado TAMA (Trend Adaptive Moving Averages). Este indicador resuelve los problemas que tienen las medias móviles cuando hay tendencias. Dejo el articulo en pdf adjuntado y un enlace al indicador que esta disponible para MT5.
    Quería saber si alguien cree que es posible hacer este indicador en ProRealtime.

    Gracias.

    https://www.mql5.com/en/market/product/88759?source=External#description

    Journal25_IFTA-28-36.pdf
    #241974 quote
    Iván GonzálezIván González
    Moderator
    Legend

    Buenas! Me he aventurado a programar algo.
    Resumo aquí el indicador:
    Tres Modos de Cálculo:
    Modo 0: TAMA básica con promedio simple de regresiones.
    Modo 1: TAMA ponderada, usando una ponderación lineal para dar más peso a las regresiones recientes.
    Modo 2: TAMA basada en cuantiles, donde el valor final se selecciona según el cuantil definido por el usuario.

    // Configuración de parámetros
    Per = 20 // Período de la media móvil
    MaType = 0 // Tipo de media móvil base (0=SMA, 1=EMA, etc.)
    aggFunc = 0.5 // Cuantil usado para la agregación (0=min, 1=max, 0.5=mediana)
    mode = 0// Modo de cálculo: 0=Básica, 1=Ponderada, 2=Cuantiles
    
    // Cálculo de la media móvil base
    baseMA = average[Per, MaType](close)
    
    // Inicialización de variables
    trendAdjustedMA = 0 // Valor ajustado
    $regressionArray[0] = 0 // Array para almacenar resultados de regresiones
    
    // Cálculo de las regresiones
    FOR i = 1 TO Per DO
    regressionEstimate = LinearRegression[i](close) // Regresión para cada subconjunto
    $regressionArray[i] = regressionEstimate // Almacenamos en el array
    NEXT
    
    // Modo 0: TAMA básica
    IF mode = 0 THEN
    // Cálculo de las regresiones y estimaciones
    regressionSum = 0 // Suma de las regresiones
    regressionCount = 0 // Número de regresiones realizadas
    
    FOR i = 1 TO Per DO
    // Regresión lineal para cada subconjunto de la ventana
    regressionEstimate = LinearRegression[i](close)
    regressionSum = regressionSum + regressionEstimate
    regressionCount = regressionCount + 1
    NEXT
    
    // Promedio de las estimaciones
    IF regressionCount > 0 THEN
    trendAdjustedMA = regressionSum / regressionCount
    ELSE
    trendAdjustedMA = baseMA // En caso de error, usar la media móvil base
    ENDIF
    
    // Modo 1: TAMA ponderada linealmente
    ELSIF mode = 1 THEN
    regressionSum = 0
    weightSum = 0
    FOR i = 1 TO Per DO
    weight = i / (Per * (Per + 1) / 2) // Peso lineal
    regressionSum = regressionSum + ($regressionArray[i] * weight)
    weightSum = weightSum + weight
    NEXT
    IF weightSum > 0 THEN
    trendAdjustedMA = regressionSum / weightSum
    ELSE
    trendAdjustedMA = baseMA // Respaldo en caso de error
    ENDIF
    
    // Modo 2: TAMA basada en cuantiles
    ELSIF mode = 2 THEN
    ArraySort($regressionArray, ASCEND) // Ordenar los valores
    IF IsSet($regressionArray[Per]) THEN
    cuantilIndex = FLOOR(aggFunc * (Per - 1)) + 1 // Índice del cuantil
    trendAdjustedMA = $regressionArray[cuantilIndex]
    ELSE
    trendAdjustedMA = baseMA // Respaldo en caso de error
    ENDIF
    ENDIF
    
    // Devolución de resultados
    RETURN baseMA COLOURED("blue") AS "Media Base", trendAdjustedMA COLOURED("red") AS "TAMA"
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Crear indicador TAMA


ProBuilder: Indicadores y Herramientas

New Reply
Author
author-avatar
repropel @repropel Participant
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by Iván GonzálezIván González
1 year, 8 months ago.

Topic Details
Forum: ProBuilder: Indicadores y Herramientas
Language: Spanish
Started: 12/30/2024
Status: Active
Attachments: 1 files
ProRealCode ProRealCode
Loading...