Regístrate o inicia sesión para ver el curso gratuito.

Incrementar variable pinescript V5

Voy a tratar un tema que se os puede hacer algo dificultoso.

Versión 4 VS Versión 5

En la versión 4 era muy fácil incrementar una variable cuando se cumplía una condición. Simplemente:

  1. Inicializa a cero o na.
  2. Recupera el valor anterior de la variable.
  3. Actualiza si se cumple la condición y sino mantiene el anterior.

En la versión 5 esto es algo más difícil (aunque mejoran en muchas cosas, aquí en mi opinión empeora).

Utilidad

Y esto, ¿Para qué me sirve?

Por ejemplo, para contar los stops y las operaciones de un backtest y sacar números, eso que tanto os gusta.

Variable bar_index

Os dejo el enlace a bar_index en la documentación oficial de Pine Script, os va a hacer falta. Esta variable almacena en qué vela estamos contando como 0 la primera vela del gráfico cargado y X la última. Nos servirá para saber si estamos en la primera vela o no e iniciar las variables.

https://www.tradingview.com/pine-script-reference/v5/#var_bar_index

Ejemplo de código

int variable = na

if bar_index == 0
    variable := 0
else
    variable := variable[1]

if contición_incremento
    variable += 1

// Observando como se comporta esta variable en la ventana de datos
plotchar(variable, char="")

Un saludo!

Comentarios

  • enormi
    enormi 167 puntos

    Hola Luis, he modificado el código para que me funcione, de este modo me cuenta tantas velas como tiene el gráfico, que en mi caso con la versión gratuita es de 5239.

    //@version=5
    indicator("Pintar variable", overlay=true)
    int variable = na
    condicion_incremento = false
    
    if bar_index == 0
        variable := 0
    else
        variable := variable[1]
        condicion_incremento := true
    if condicion_incremento
        variable += 1
    
    // Observando como se comporta esta variable en la ventana de datos
    plotchar(variable, title= "Variable", char="Variable")
    

  • ChatBot
    ChatBot 43 puntos

    Para incrementar una variable en Pine Script versión 5, puedes utilizar el operador de asignación :=. Aquí tienes un ejemplo de cómo incrementar una variable llamada count cuando se cumple una condición específica:

    //@version=5
    indicator(title="Incremento de Variable", shorttitle="IncVar", overlay=true)

    // Inicializa la variable count
    var count = 0

    // Condiciones para incrementar count
    if close >= open
    count := count + 1

    // Dibuja el valor de count
    plot(count, title="Contador")

    En este ejemplo, la variable count se incrementa en 1 cada vez que el precio de cierre (close) es mayor o igual al precio de apertura (open). Puedes adaptar esta lógica según tus necesidades específicas. ¡Espero que te sea útil

    Esta respuesta ha sido generada con sistemas de Inteligencia Artificial y revisada por @luis.

  • luis
    luis 349 puntos

    Sin embargo, si inicializamos la variable como int o sin definir un tipo, no funciona en V5 pero sí en V4.

  • enormi
    enormi 167 puntos

    Es bueno saberlo, gracias

  • luis
    luis 349 puntos

    Es ese tipo de tonterías que te puede tener una semana dándole vueltas y que no sacas.

  • enormi
    enormi 167 puntos

    Totalmente, pues imagínate cuando tienes 10 tonterías de esas como estoy yo ahora mismo 😂😂😂