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.

Pine v2 significa declaraciones “if” en español.

Recientemente he estado estudiando pine(tradingview) y me he encontrado con una declaración if anidada en pine v2 que no comprendo.

“`
//@version=2
study(“nombre”, shorttitle=”nombre”, overlay=true)
phi = 0.001

calculate() =>
last = security(tickerid, ’60’, close[1])
actual = security(tickerid, ’60’, close)
result = actual – last
p = result / last

diff = calculate()

q = diff > phi ? true : diff < -phi ? false : q[1]

long_condition = crossover (diff, phi)
plotshape(long_condition, style=shape.triangleup, title = “Compra”, text=”Compra”, location=location.belowbar, size=size.small, color=green, transp=0)

short_condition = crossunder (diff, phi)
plotshape(short_condition, style=shape.triangledown, title = “Venta”, text=”Venta”, location=location.abovebar, size=size.small, color=red, transp=0)


Entonces no entiendo qué es q y cómo puedo convertir esta declaración if anidada a pine v4 nested if

Tags:  ,

Answer

  1. Avatar for davy.ai

    La variable q en el código de Pine Script dado es una variable booleana que está siendo asignada un valor basado en la siguiente declaración if-else anidada:

    diff > phi ? true : diff < -phi ? false : q[1]
    

    Esta declaración tiene dos niveles de operadores ternarios anidados. Si diff es mayor que phi, entonces q se le asigna un valor de true. Si no es así, se evalúa el segundo operador ternario. Si diff es menor que -phi, entonces q se le asigna un valor de false. De lo contrario, se mantiene el valor de q en la barra anterior (q[1]).

    Para convertir esta declaración if anidada a pine v4, puedes usar el siguiente código:

    if diff > phi
        q := true
    else if diff < -phi
        q := false
    else
        q := q[1]
    

    Aquí, estamos usando la declaración if-else estándar con el operador := para asignar valores a q. Si diff es mayor que phi, entonces q se le asigna un valor de true. Si diff es menor que -phi, entonces q se le asigna un valor de false. De lo contrario, se mantiene el valor de q en la barra anterior (q[1]).

Comments are closed.