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.

Cast constant value from series – Convertir valor constante de una serie.

Soy completamente nuevo en este foro y en tradingview/pinescript. Estoy intentando escribir un indicador y parte del script requiere asignar un valor constante a una variable de una serie.

A partir de un promedio móvil del volumen (promedio móvil de 50 días), quiero establecer la variable constante ‘reference_Vol’ en el valor del promedio móvil del día anterior solamente y no en los días anteriores a ayer. Sin embargo, la variable se sobrescribe después de cada barra anterior ya que ‘volume’ es una serie, por lo que efectivamente la variable no es constante, sino que cambia dinámicamente a lo largo del historial de las barras de precio.

He intentado establecer el valor como un literal (literal int(x)), jugar con la función valuewhen(), pero no tengo suficiente experiencia en scripts para saber qué estoy haciendo. Tengo la sensación de que hay una solución fácil para esto y realmente podría usar algo de ayuda.

¡Muchas gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    ¡Hola y bienvenido al foro y a Pine-Script!

    Para asignar un valor constante a una variable desde una serie, debes utilizar la función valuewhen(). La función valuewhen() busca el valor en una serie en un índice de barra específico y devuelve el valor en ese índice.

    Así es cómo puedes modificar tu código para establecer la variable constante ‘reference_Vol’ al valor de la media móvil del precio de ayer solamente:

    SMA_50d = sma(volume,50)
    reference_Vol = valuewhen(bar_index == bar_index[1], SMA_50d, 0)
    

    La función valuewhen() toma tres argumentos: la condición, la serie en la que buscar y el valor predeterminado a devolver si la condición no se cumple.

    En el código anterior, la condición es bar_index == bar_index[1], lo cual busca la media móvil en el índice de barra de ayer. La serie en la que buscar es SMA_50d y el valor predeterminado es 0 (lo cual es irrelevante aquí ya que la condición siempre será verdadera).

    ¡Espero que esto te ayude! No dudes en preguntar si tienes alguna otra pregunta. ¡Buena suerte con tu indicador!

Comments are closed.