Introdução

Sem as ferramentas de negociação corretas, você não será capaz de realizar análises técnicas eficazes. Uma estratégia de negociação sólida irá ajudá-lo a evitar erros comuns, melhorar a sua gestão de riscos e aumentar a sua capacidade de identificar e aproveitar oportunidades.

Para muitos, o TradingView é a plataforma gráfica de referência. Oferecendo um centro de ferramentas de análise técnica, este poderoso aplicativo web HTML5 é usado por milhões de pessoas para monitorar os movimentos do Forex, das criptomoedas e dos mercados de ações tradicionais.

O TradingView possui muitos recursos poderosos: ele permite monitorar ativos em diversas plataformas de negociação, bem como postar ideias de negociação em sua rede social. Neste artigo vamos nos concentrar em sua capacidade de customização. Utilizaremos Pine Script, linguagem de programação própria do TradingView, que nos garante um controle granular sobre nossos formatos gráficos.

Comecemos!


O que é PineScript?

Pine Script é uma linguagem de script que você pode usar para modificar seus gráficos do TradingView. A plataforma já oferece muitas funcionalidades para isso, mas o Pine Script permite que você dê um passo além. Seja alterando as cores de suas velas ou testando uma nova estratégia, o Pine Editor permitirá que você personalize seus gráficos em tempo real conforme achar necessário.

O código em si está excelentemente documentado, portanto, consulte o manual do usuário para obter mais informações. Nosso objetivo neste tutorial é discutir alguns dos princípios básicos e apresentar indicadores que podem ser úteis para a negociação de criptomoedas.


Contexto

Começar a usar o Pine Script é incrivelmente simples. Qualquer código que escrevermos será executado nos servidores do TradingView, para que possamos acessar o editor e desenvolver nossos scripts a partir de um navegador – sem necessidade de downloads ou configurações extras.

Neste tutorial, vamos “traçar” o par de moedas Bitcoin/Binance USD (BTCBUSD). Se ainda não o fez, dê o passo e registre uma conta gratuita (uma assinatura profissional também está disponível, mas não é necessária para este guia).

Siga este link e você encontrará um gráfico semelhante ao seguinte:


Gráfico BTCBUSD en tradingview

O seu provavelmente estará mais atualizado.


Uma vez aqui, queremos ter o gráfico completo – clique no botão para acessá-lo. Isso nos dará uma visão muito mais detalhada, ferramentas de desenho e opções para desenhar linhas de tendência, entre outras coisas.


Gráfico completo en tradingview para BTCBUSD

Gráfico completo. Você pode ajustar o intervalo de tempo clicando nas visualizações que aparecem acima das guias destacadas.


Não entraremos em detalhes sobre como usar as diferentes ferramentas disponíveis, mas se você leva a análise técnica muito a sério, é altamente recomendável que você se familiarize com elas. No canto inferior esquerdo (indicado na imagem), você verá uma série de abas diferentes – clique em Pine Editor.


O editor de pinho


captura de pantalla del pine editor


Este editor é onde a mágica acontece. Diremos o que queremos fazer e depois clicaremos em Adicionar ao gráfico para ver como nossas anotações aparecem acima. Tenha em mente que as coisas podem ficar complicadas se incluirmos várias anotações ao mesmo tempo, por isso iremos removê-las entre os diferentes exemplos - clique com o botão direito no gráfico > Remover Indicadores.

Você pode ver que já temos algumas linhas de código ali. Vamos clicar em Adicionar ao gráfico para ver o que acontece.


Añadiendo primer script al gráfico tradingview


Um segundo gráfico é adicionado abaixo do original. O novo gráfico representa os mesmos dados. Passe o mouse sobre Meu Script e clique na cruz para excluí-lo. Agora, vamos analisar o código em detalhes.

estudo("Meu Script")

Esta primeira linha simplesmente configura nossa anotação. Requer apenas o nome que você deseja dar ao indicador ("Meu Script", neste caso), embora também exista uma série de parâmetros opcionais que podemos adicionar. Um deles é a sobreposição, que informa ao TradingView para colocar o indicador no gráfico existente (em vez de em um novo segmento). Como você pode ver em nosso primeiro exemplo, por padrão aparece como falso. Embora não veremos isso em ação agora, overlay=true adiciona o indicador ao gráfico existente.

enredo (fechar)

Esta linha é a instrução para marcar o preço de fechamento do Bitcoin. plot simplesmente nos fornece um gráfico de linhas, embora também possamos exibir velas e barras, como veremos em breve.

Agora, vamos tentar o seguinte:

//@versão=4
study("Meu Script", overlay=true)
gráfico (aberto, cor = cor.roxo)

Depois de adicionar isso, você poderá ver um segundo gráfico (que será como o original deslocado para a direita). Tudo o que fizemos foi capturar o preço de abertura, e como a abertura do dia atual é o fechamento do dia anterior, é lógico que estes apresentem uma forma idêntica.

Muito bem! Vamos nos livrar das anotações atuais - lembre-se, para fazer isso temos que clicar com o botão direito e selecionar Remover Indicadores. Passe o mouse sobre Bitcoin/BUSD e clique no botão Ocultar para limpar também o gráfico atual.

Muitos traders preferem gráficos de velas, pois eles nos fornecem mais informações do que um simples diagrama como o que acabamos de fazer. Vamos prosseguir para adicioná-los abaixo.

//@versão=4
study("Meu Script", overlay=true)
plotcandle(aberto, alto, baixo, fechado)

É um bom começo, mas a falta de cores torna-o um pouco sem graça. Idealmente, deveríamos ter velas vermelhas quando a abertura for maior que o fechamento no período em questão, e verdes quando o fechamento ultrapassar a abertura. Então, adicionaremos uma linha acima da função plotcandle():

//@versão=4
study("Meu Script", overlay=true)
cores = abrir >= fechar ? color.red : color.green
plotcandle(aberto, alto, baixo, fechado)

Isto irá olhar para cada vela e verificar se a abertura é maior ou igual ao fechamento. Se for, significa que os preços caíram durante o período, por isso a vela ficará vermelha. Caso contrário, ele ficará verde. Modifique a função plotcandle() para aprovar este esquema de cores:

//@versão=4
study("Meu Script", overlay=true)
cores = abrir >= fechar ? color.red : color.green
plotcandle(aberto, alto, baixo, fechado, cor = cores)

Exclua os indicadores atuais, se ainda não o fez, e adicione este ao gráfico. Agora, devemos ter algo parecido com um gráfico de velas comum.


Gráfico de velas en tradingview

¡Precioso!


Traçar médias móveis (MA)

Já temos alguns dos elementos básicos. Vejamos agora nosso primeiro indicador personalizado – a média móvel exponencial ou EMA. Esta é uma ferramenta valiosa, pois nos permite filtrar qualquer ruído do mercado e suavizar a ação dos preços.

A EMA difere ligeiramente da média móvel simples (SMA) porque dá maior peso aos dados mais recentes. Tende a ser mais reativo a movimentos bruscos e é frequentemente utilizado para jogadas de curto prazo (como no day trading, por exemplo).


A média móvel simples (SMA)

Também poderíamos representar graficamente o SMA, para que possamos comparar as duas médias posteriormente. Adicione esta linha ao seu script:

plot(sma(fechar, 10))

Isso representará a média dos dez dias anteriores. Ajuste o número entre parênteses para ver como a curva muda ao considerar diferentes comprimentos.


Media móvil basada en los 10 días anteriores

O SMA, com base nos dez dias anteriores.


A média móvel exponencial (EMA)

A EMA será um pouco mais difícil de entender, mas não se preocupe. Vamos decompor a fórmula primeiro:

EMA = (Fechar - EMA do dia anterior) * Multiplicador - EMA do dia anterior

Então, o que isso está nos dizendo? Pois bem, para cada dia calculamos uma nova média móvel, com base na do dia anterior. O multiplicador é o que “pondera” o período mais recente, e é calculado com a seguinte fórmula:

Multiplicador = 2 / (Comprimento EMA + 1)

Tal como acontece com as médias móveis simples, precisamos especificar quanto tempo será a EMA. Sintaticamente, a função de plotagem da EMA é semelhante à da SMA. Plote-o próximo ao SMA para que você possa comparar os dois:

//@versão=4
study("Meu Script", overlay=true)
plot(sma(fechar, 10))
plot(ema(fechar,10))


EMA y SMA en un gráfico de tradingview

Você pode ver que há uma ligeira diferença entre os dois tipos de MA.


➠ Você está pensando em começar no mundo das criptomoedas? Compre Bitcoin na Binance!


Scripts integrados

Até agora, escrevemos nosso código manualmente para que você se familiarize com ele. A seguir apresentaremos um elemento que pode nos poupar tempo, principalmente se vamos escrever scripts mais complexos e não queremos fazê-lo do zero.

No canto superior direito do seu editor, clique em Novo. Você encontrará um menu suspenso com todos os tipos de indicadores técnicos diferentes. Clique em Moving Average Exponencial para ver o código fonte de um indicador EMA.



Media móvil exponencial en un script pine

Vá em frente e adicione isso ao gráfico.


Este é diferente do nosso – você reconhecerá as funções input(). Eles são ótimos do ponto de vista da usabilidade, já que você pode clicar nesta caixa…


Modificando un gráfico en la interfaz de tradingview


...e altere facilmente alguns dos valores em uma janela pop-up clicando na roda Configurações.


cambiar las entradas en EMA


Adicionaremos algumas funções input() em nosso próximo script para demonstrar isso.


Sinalize o indicador Índice de Força Relativa (RSI)

O Índice de Força Relativa (RSI) é outro indicador essencial de análise técnica. É conhecido como indicador de “momentum”, o que significa que mede a velocidade com que os ativos são comprados e vendidos. Apresentada em uma escala de 0 a 100, uma pontuação RSI tenta informar aos investidores se os ativos estão “sobrecomprados” ou “sobrevendidos”. Normalmente, um ativo pode ser considerado sobrevendido se tiver pontuação menor ou igual a 30, e sobrecomprado com pontuação maior ou igual a 70.

Se você acessar Novo> Estratégia RSI, poderá verificar por si mesmo. O RSI é normalmente medido em períodos de 14 (ou seja, 14 horas ou 14 dias), mas você pode modificar essas configurações para se adequar à sua própria estratégia.

Adicione isso ao gráfico. Você deverá ver algumas setas exibidas agora (definidas pela função strategy.entry() no código). RsiLE indica uma oportunidade potencial para prolongar o ativo, pois ele pode estar sobrevendido. O RsiSE destaca possíveis pontos para vender o ativo quando ele estiver sobrecomprado. Tenha em mente que, tal como acontece com todos os indicadores, não deve necessariamente confiar neles como prova infalível de que os preços irão subir ou descer.


Backtesting

Existe uma maneira de testarmos nossos indicadores personalizados. Embora o desempenho passado não seja garantia de resultados futuros, o backtesting de nossos scripts pode nos dar uma ideia de quão eficazes eles são na captação de sinais.

Abaixo daremos um exemplo de um script simples. Vamos criar uma estratégia simples que entra em uma posição longa quando o preço do BTC cai abaixo de US$ 11.000 e sai da posição quando o preço excede US$ 11.300. Assim, podemos ver quão lucrativa esta estratégia teria sido historicamente.

//@versão=4
estratégia("ALaLuna", sobreposição=true)
digite = entrada(11000)
saída = entrada(11300)
preço = fechar

if (preço <= insira)
    estratégia.entry("CompraLaCaída", estratégia.long, comment="CompraLaCaída")
if (preço >= saída)
    estratégia.close_all(comment="VendeLasNoticias")

Aqui definimos a entrada e a saída como variáveis; ambos são entradas, o que significa que podemos alterá-los no gráfico posteriormente. Definimos também a variável preço, que leva o fechamento de cada período. Portanto, temos alguma lógica na forma de instruções if. Se a parte entre colchetes for verdadeira, o bloco recuado abaixo será executado. Caso contrário, será ignorado.

Portanto, se o preço for menor ou igual à entrada desejada, a primeira expressão será avaliada como verdadeira e abriremos uma posição longa. Assim que o preço igualar ou ultrapassar a saída desejada, o segundo bloco será ativado, fechando todas as posições abertas.

Anotaremos o gráfico com setas mostrando onde entramos/saímos, então especificamos como rotular esses pontos com o parâmetro de comentário (neste exemplo, "BuyTheDip" e "SellTheNews"). Copie o código e adicione-o ao gráfico.


indicador activo en el gráfico tradingview

Agora você pode ver os indicadores no gráfico. Pode ser necessário diminuir o zoom.


O TradingView aplica automaticamente suas regras a dados mais antigos. Você também notará que ele muda do Pine Editor para a guia Strategy Tester. Isto permite-lhe ter uma visão geral dos seus lucros potenciais, uma lista de negociações e cada um dos seus desempenhos individuais.


Trading view strategy tester

Posições em que entramos e saímos.


Junte as peças

É hora de escrever nosso próprio roteiro usando alguns dos conceitos que vimos até agora. Combinaremos EMA e RSI e usaremos seus valores para colorir as velas, que retornarão informações que podemos visualizar facilmente.

Isto não deve ser interpretado como aconselhamento financeiro; Não existe uma forma objectivamente correcta de utilizar este indicador. Tal como acontece com todos os outros, deve ser utilizado com outras ferramentas para desenvolver a sua própria estratégia.

Agora vamos trabalhar em nosso novo script. Remova todos os seus indicadores do gráfico e oculte também o gráfico Bitcoin/BUSD, para que tenhamos uma tela em branco para trabalhar.

Vamos começar definindo nosso estudo. Sinta-se à vontade para nomeá-lo como quiser, apenas certifique-se de definir overlay = true.

estudo(title="Script da Binance Academy", overlay=true)

Lembre-se da nossa fórmula EMA anterior. Precisamos fornecer ao multiplicador o comprimento da EMA. Vamos convertê-lo em uma entrada que requer um número inteiro (portanto, sem casas decimais). Também definiremos um mínimo que pode ser (minval) e um valor padrão (defval).

estudo(title="Script da Binance Academy", overlay=true)
emaLength = input(title="Comprimento EMA", type=input.integer, defval=25, minval=0)


Usando esta nova variável, podemos calcular o valor da EMA para cada vela em nosso gráfico:

estudo(title="Script da Binance Academy", overlay=true)
emaLength = input(title="Comprimento EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(fechar, emaLength)


Excelente. Sobre o RSI. Daremos a ele um comprimento semelhante:

estudo(title="Script da Binance Academy", overlay=true)
emaLength = input(title="Comprimento EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(fechar, emaLength)
rsiLength = input(title="Comprimento RSI", type=input.integer, defval=25, minval=0)

E agora podemos calculá-lo:

estudo(title="Script da Binance Academy", overlay=true)
emaLength = input(title="Comprimento EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(fechar, emaLength)
rsiLength = input(title="Comprimento RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(fechar, rsiComprimento)

Nesta fase, vamos montar a lógica que colore as velas com base nos valores da EMA e do RSI. Tomemos uma situação onde (a) o preço de fechamento da vela excede a EMA e (b) onde o RSI está acima de 50.

Porque? Bem, você pode decidir que esses indicadores podem ser usados ​​em conjunto para informar quando comprar Bitcoin no curto ou longo prazo. Por exemplo, você pode pensar que atender a ambas as condições significa que é um bom momento para entrar em uma posição longa. Ou, inversamente, você pode usá-lo para informar quando não deve operar vendido, mesmo que outros indicadores indiquem o contrário.

Portanto, nossa próxima linha ficará assim:

estudo(title="Script da Binance Academy", overlay=true)
emaLength = input(title="Comprimento EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(fechar, emaLength)
rsiLength = input(title="Comprimento RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(fechar, rsiComprimento)
cores = fechar > emaVal e rsiVal > 50 ? color.green : color.red

Se traduzirmos isso para uma linguagem simples, estamos simplesmente dizendo que se o valor da EMA exceder o preço de fechamento e a pontuação do RSI exceder 50, coloriremos a vela de verde. Caso contrário, iremos colori-lo de vermelho.

A seguir, trace a EMA:

estudo(title="Script da Binance Academy", overlay=true)
emaLength = input(title="Comprimento EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(fechar, emaLength)
rsiLength = input(title="Comprimento RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(fechar, rsiComprimento)
cores = fechar > emaVal e rsiVal > 50 ? color.green : color.red
gráfico(emaVal, "EMA")

Por fim, plote as velas, certificando-se de incluir o parâmetro color:

estudo(title="Script da Binance Academy", overlay=true)
emaLength = input(title="Comprimento EMA", type=input.integer, defval=25, minval=0)
emaVal = ema(fechar, emaLength)
rsiLength = input(title="Comprimento RSI", type=input.integer, defval=25, minval=0)
rsiVal = rsi(fechar, rsiComprimento)
cores = fechar > emaVal e rsiVal > 50 ? color.green : color.red
gráfico(emaVal, "EMA")
plotcandle(aberto, alto, baixo, fechado, cor = cores)

E esse é o roteiro! Adicione-o ao gráfico para vê-lo em ação.


Script de Tradingview en acción

Um gráfico BTC/BUSD com o indicador EMA/RSI.


Em conclusão

Neste artigo, veremos alguns exemplos básicos do que você pode fazer com o editor Pine do TradingView. Neste ponto, você deve fazer anotações simples nos gráficos de preços para obter informações adicionais de seus próprios indicadores.

Estamos interessados ​​apenas em alguns indicadores aqui, mas é fácil gerar indicadores mais complexos, seja selecionando os scripts integrados do New ou escrevendo-os você mesmo.

Falta de inspiração? Os artigos a seguir podem fornecer algumas ideias para seu próximo projeto:

  • Breve Guia para o Indicador Parabólico SAR

  • Guia para dominar as retrações de Fibonacci

  • Introdução aos Indicadores Avançados e Atrasados ​​(Indicadores Avançados/Atrasados)

  • Indicador MACD explicado