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.

Error de bucle en Pine Script

Estoy intentando calcular un cruce dorado con un bucle for, pero el código no funciona (en realidad, ni siquiera sé si está escrito correctamente). Hay 2 cruces dorados, pero dice que hay 0. Te ruego que me ayudes, soy nuevo en la programación y voy a perder la cabeza.

indicator("Conteo de Cruces", overlay=true)
v1 = input.int(8, "WMA corta", minval=1)
v2 = input.int(21, "WMA larga", minval=1)
v3 = input.int(500, "Entrada de retroceso", minval=10, step=10)

cp = 0
var label lbl = label.new(na, na, " ", style=label.style_label_left)
wmaS = ta.wma(close, v1)
wmaL = ta.wma(close, v2)

for i = 0 to v3
 if ta.crossover(wmaS, wmaL)
  cp := cp + 1
cp

plot(wmaS, color=color.purple)
plot(wmaL, color=color.orange)
label.set_xy(lbl, bar_index, high)
label.set_text(lbl, str.tostring(cp, "Cruce Dorado = "))`
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con el bucle for en el código proporcionado. Actualmente, el bucle itera en un rango de 0 a v3 (el valor de “Look Back Input”), pero en realidad no está comprobando las intersecciones entre las WMAs cortas y largas durante cada iteración.

    Para solucionar esto, podrías actualizar el bucle de la siguiente manera:

    for i = v2+v3 hasta 0
        si ta.crossover(wmaS[i],wmaL[i])
            cp := cp + 1
    

    De esta manera, se iterará hacia atrás a través de los datos (desde v2+v3 hasta 0) y se comprobarán las intersecciones entre las WMAs cortas y largas en cada punto. Si se encuentra una intersección, se incrementará el contador “cp”.

    Espero que esto ayude a solucionar el problema y mejorar la precisión de tu cálculo de la cruz dorada.

Comments are closed.