tradingview:depuracao:introducao
Tabela de conteúdos
Introdução
- A integração entre a ferramenta gráfica e o Pine permite depurar o script de inúmeras maneiras.
- Uma vez que você conheça as possibilidades e as técnicas mais apropriadas para cada ocasião - ficará fácil identificar problemas no seu script.
- Este capítulo irá demonstrar alguns métodos.
- IMPORTANTE: Para entender depuração é fundamental entender o modelo de execução do Pine - para entender como o código deveria estar se comportando.
Plotagem de Valores
- A forma mais simples de depurar um script para confirmar valores númericos é através de uma plotagem - mesmo que essa não seja o objetivo do script.
- Existem 4 formas de visualizar na interface gráfica um valor sendo plotado:
- Próximo ao título (nome) do script.
- Configurações > Status da linha > Valores do indicadores
- No painel onde o script está sendo plotado.
- Nova Janela.
- Sobreposto.
- Na escala de preços (eixo y) - rótulo.
- Configurações > Escalas > Mostrar último valor do indicador
- É o valor mais recente.
- Na aba “Janela de Dados” (Data Window) - Quarto ícone.
- Notas:
- Mover a cruz no painel do gráfico altera o valor sendo mostrado.
- Alterar o título da plot() - altera o título na “Janela de Dados”.
- Precisão do valor sendo mostrado é configurado no script ou herdado da configuração do gráfico.
Preservando a Escala
- Plotando múltiplos valores para fins de depuração nem sempre é possível pois podem pertencer a escalas diferentes. O que torna a plotagem ilegível e a depuração difícil.
- Vamos analisar um exemplo para propormos uma alternativa.
- Precisamos plotar um valor de preço e ao mesmo tempo confirmar a indexação de uma barra.
//@version=4 study("Plotar RSI e 'bar_index'") r = rsi(close, 20) plot(r, "RSI", color.black) plot(bar_index, "Bar Index")
- Rodando esse script notamos que leitura da plotagem é difícil pois os valores pertencem a escalas diferentes.
- Para preservarmos a escala do RSI e ainda assim permitir a inspeção do valor de bar_index - podemos fazer uma alteração de plot() para plotchar()
//@version=4 study("Plotar RSI e 'bar_index'") r = rsi(close, 20) plot(r, "RSI", color.black) plotchar(bar_index, "Bar index", "", location.top)
- Porque o valor de bar_index não está mais sendo plotado no painel do script - a escala volta a comportar o valor do RSI.
- Ainda é possível inspecionar o valor de bar_index na “Janela de Dados” e no título do script.
- Note que ao chamarmos plotchar() não especificamos um texto - o argumento é uma string vazia ( “ ” ). E especificamos location para location.top assim não colocamos nenhum símbolo.
Mostrando strings
- Podemos usar rótulos para “plotar” texto.
- Nota: Valores “plotados” em rótulos não são apresentados na “Janela de Dados” e nenhum outro lugar a não ser o próprio painel do script.
//@version=4 study("Rótulo Simples", "", true) label.new(bar_index, high, syminfo.ticker)
- Por padrão - apenas rótulos das últimas 50 barras são desenhados.
- É possível aumentar esse valor para no máximo 500 usando o argumento max_labels_count na anotação study() ou strategy()
study("Rótulo Simples", "", true, max_labels_count = 500)
- Alternativa - mostrando o rótulo apenas na última barra é um método eficaz e comum de confirmar um texto para fins de depuração - mesmo que este não seja o objetivo do script.
//@version=4 study("f_print()", "", true) f_print(_text) => // Criar rótulo na primeira barra. var _label = label.new(bar_index, na, _text, xloc.bar_index, yloc.price, color(na), label.style_none, color.gray, size.large, text.align_left) // Atualizar os valores na barras seguintes label.set_xy(_label, bar_index, highest(10)[1]) label.set_text(_label, _text) f_print("Multiplicador = " + tostring(timeframe.multiplier) + "\nPeriod = " + timeframe.period + "\nHigh = " + tostring(high)) f_print("Hello world!\n\n\n\n")
tradingview/depuracao/introducao.txt · Última modificação: 05/04/2023 08:25 por 127.0.0.1