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.

Cambiar los valores de la tupla al usar un bucle en Pine Script.

En Pine Script tengo una función que devuelve una tupla:

“`pine script
calcSomething(val1, val2) =>

[val3, val4]


Y estoy llamando a la función desde un bucle donde los valores de `val1` y `val2` cambian: ```pine script while i < 5 [val5, val6] = calcSomething(val1, val2) val1 += 1 val2 += 1 i += 1

Desafortunadamente, los valores de val5 y val6 permanecen iguales cada vez que se ejecuta el bucle.

Intenté cambiar = por :=:

pine script
[val5, val6] := calcSomething(val1, val2)

Pero devuelve un error de sintaxis en la entrada :=.

¿Cómo puedo hacer que la tupla cambie de valores desde dentro del bucle?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que los valores de la tupla cambien dentro del bucle en Pine script, puedes intentar modificar la función para que tome punteros como valores de retorno, de la siguiente manera:

    calcularAlgo(val1, val2, out1, out2) =>
        ...
        out1 := val3
        out2 := val4
    

    Luego, puedes llamar a la función dentro de tu bucle de la siguiente manera:

    var val5 = na
    var val6 = na
    calcularAlgo(val1, val2, addr(val5), addr(val6))
    val1 += 1
    val2 += 1
    i += 1
    

    El uso de na inicializa los valores de val5 y val6 como valores “no disponibles”. La función addr() se utiliza para pasar los punteros de val5 y val6 a la función. Entonces, dentro de la función, los valores se asignan a las direcciones de las variables de salida utilizando :=. Esto debería permitir que los valores de la tupla cambien en cada iteración del bucle.

Comments are closed.