Ferramentas do usuário

Ferramentas do site


tradingview:depuracao:loops

Loops

  • Valores dentro de loops for não podem ser plotados usando a função plot() - assim como em funções, variáveis são locais para o escopo do loop.
  • Mais comum, plotando o resultado final:
//@version=4
study("Depuração Loop Para")
i_lookBack = input(20, minval = 0)
 
float trBalance = 0
for _i = 1 to i_lookBack
    trBalance := trBalance + sign(tr - tr[_i])
 
hline(0)
plot(trBalance)
  • Extraindo um valor único - para inspecionarmos uma variável em um momento específico do loop - podemos armazenar esse valor e plotá-lo uma vez que o loop termine.
//@version=4
study("Depuração Loop Para", max_lines_count = 500, max_labels_count = 500)
i_lookBack = input(20, minval = 0)
 
float val = na
float trBalance = 0
for _i = 1 to i_lookBack
    trBalance := trBalance + sign(tr - tr[_i])
    if _i == i_lookBack
        val := tr[_i]
hline(0)
plot(trBalance)
plot(val, "val", color.black)
  • Extraindo valores múltiplos - Para inspecionar valores de mais de uma iteração de um loop podemos desenhar uma linha com pontos (coordenadas) correspondentes aos valores de cada iteração - podemos também usar rótulos para mostrar esses valores
//@version=4
study("Depuração Loop Para", max_lines_count = 500, max_labels_count = 500)
i_lookBack = input(20, minval = 0)
 
float trBalance = 0
for _i = 1 to i_lookBack
    trBalance := trBalance + sign(tr - tr[_i])
    line.new(bar_index[1], tr[_i], bar_index, tr[_i], color = color.black)
    label.new(bar_index, tr[_i], tostring(_i) + "•" + tostring(tr[_i]), style = label.style_none, size = size.small)
 
hline(0)
plot(trBalance)
  • Alternativamente, podemos construir uma string que irá conter todos esses valores
//@version=4
study("Depuração Loop Para", max_lines_count = 500, max_labels_count = 500)
i_lookBack = input(20, minval = 0)
 
string = ""
float trBalance = 0
for _i = 1 to i_lookBack
    trBalance := trBalance + sign(tr - tr[_i])
    string := string + tostring(_i, "00") + "•" + tostring(tr[_i]) + "\n"
 
label.new(bar_index, 0, string, style = label.style_none, size = size.small, textalign = text.align_left)
hline(0)
plot(trBalance)


tradingview/depuracao/loops.txt · Última modificação: 05/04/2023 08:25 por 127.0.0.1