es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando obtener los valores de DI + DI- y ADX en diferentes marcos de tiempo de 1H, 2H y 4H al mismo tiempo en una única ventana de tiempo (pinescript tradingview).

Alguien podría ayudarme; tengo poca experiencia en pinescript y estoy intentando obtener los valores de DI + DI- y ADX en diferentes marcos de tiempo 1H, 2H y 4H al mismo tiempo en una única ventana de tiempo. Encontré un script similar pero solo presenta el valor ADX de una sola temporalidad en la ventana de 4H y eliminando el ADX de 4H (por ejemplo, ADX de 1 hora en la ventana de 4 horas pero sin que permanezcan los datos de 4H)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hola,

    Para obtener valores de DI+ y DI- en diferentes marcos de tiempo (1H, 2H y 4H) al mismo tiempo en una sola ventana de tiempo, puede modificar el script existente para agregar indicadores de ADX adicionales para cada marco de tiempo.

    Aquí les mostramos un ejemplo de script que pueden utilizar:

    //@version=4
    study("Multi-Timeframe ADX", overlay=true)
    
    len = input(14, title="Longitud ADX")
    res1 = input(title="Marco de tiempo 1", type=input.resolution, defval="60")
    res2 = input(title="Marco de tiempo 2", type=input.resolution, defval="120")
    res3 = input(title="Marco de tiempo 3", type=input.resolution, defval="240")
    
    //Funciones para calcular DI+ y DI-
    dirmov(len) =>
        up = change(high)
        down = -change(low)
        plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
        minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
        truerange = rma(tr, len)
        plus = fixnan(100 * rma(plusDM, len) / truerange)
        minus = fixnan(100 * rma(minusDM, len) / truerange)
        [plus, minus]
    
    //Función para calcular ADX
    adx(len) =>
        [plus, minus] = dirmov(len)
        sum = plus + minus
        adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), len)
        adx
    
    //Calcular DI+ y DI- para cada marco de tiempo
    [dip1, din1] = security(syminfo.ticker, res1, dirmov(len))
    [dip2, din2] = security(syminfo.ticker, res2, dirmov(len))
    [dip3, din3] = security(syminfo.ticker, res3, dirmov(len))
    
    //Calcular ADX para cada marco de tiempo
    adx1 = security(syminfo.ticker, res1, adx(len))
    adx2 = security(syminfo.ticker, res2, adx(len))
    adx3 = security(syminfo.ticker, res3, adx(len))
    
    //Graficar los indicadores
    plot(dip1, color=color.green, title="DI+ - 1H")
    plot(din1, color=color.red, title="DI- - 1H")
    plot(adx1, color=color.blue, title="ADX - 1H")
    
    plot(dip2, color=color.green, title="DI+ - 2H")
    plot(din2, color=color.red, title="DI- - 2H")
    plot(adx2, color=color.blue, title="ADX - 2H")
    
    plot(dip3, color=color.green, title="DI+ - 4H")
    plot(din3, color=color.red, title="DI- - 4H")
    plot(adx3, color=color.blue, title="ADX - 4H")
    

    Este script utiliza la función security() para obtener los valores de DI+ y DI- y los valores de ADX para cada marco de tiempo. La función input() se utiliza para permitir que el usuario seleccione los diferentes marcos de tiempo.

    El código grafica tres conjuntos de indicadores de DI+ y DI- y tres conjuntos de indicadores de ADX para cada marco de tiempo. Puede personalizar el color y el título de cada gráfico según su preferencia.

    ¡Espero que esto ayude! Háganos saber si tiene alguna pregunta.

Comments are closed.