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.

Pinescript. Declaración condicional de trazado.

Si la variable barup es verdadera, quiero que trace una serie; si la variable bardown es verdadera, quiero que trace otra serie de valores.

Mi código actual arroja el error: Cannot use “plot in local scope”.

¿Cómo cambio el siguiente código para que el indicador muestre el número de días en que los mínimos han estado por encima del promedio móvil exponencial (EMA) de 30 días o por debajo del EMA de 30 días basado en el alto o bajo del día actual?

Este es el código que tengo ahora:

indicator("LandryLight")
bardown = high < ta.ema(close,30)
barup = low > ta.ema(close,30)
if barup
    plot(series=ta.barssince(barup)*-1, title="Consecutive Bars Down", color=color.red, style=plot.style_histogram, linewidth=2)
if bardown
    plot(series=ta.barssince(bardown), title="Consecutive Bars Up", color=color.green, style=plot.style_histogram, linewidth=2)
hline(10,title="Threshold", color=color.white, linestyle=hline.style_dashed, linewidth=1)
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para solucionar el error “No se puede usar “plot en el alcance local””, es necesario mover las declaraciones plot fuera de las declaraciones if y usar el operador ternario. Aquí se muestra el código actualizado:

    indicator("LandryLight")
    bardown = high < ta.ema(close,30)
    barup = low > ta.ema(close,30)
    downBars = bardown ? ta.barssince(bardown) : 0
    upBars = barup ? ta.barssince(barup) : 0
    plot(series=downBars, title="Barras consecutivas hacia arriba", color=color.green, style=plot.style_histogram, linewidth=2)
    plot(series=upBars*-1, title="Barras consecutivas hacia abajo", color=color.red, style=plot.style_histogram, linewidth=2)
    hline(10,title="Umbral", color=color.white, linestyle=hline.style_dashed, linewidth=1)
    

    En este código, usamos el operador ternario para comprobar las condiciones barup y bardown y establecer las variables upBars y downBars en consecuencia. Luego trazamos ambas series fuera de las declaraciones if, utilizando -1 para invertir la dirección de la serie upBars.

Comments are closed.