Introdução

Sem as ferramentas de negociação certas, você não pode conduzir análises técnicas eficazes. Uma estratégia de negociação forte irá ajudá-lo a evitar erros comuns, melhorar a sua gestão de riscos e aumentar a sua capacidade de identificar e tirar partido de oportunidades.

Para muitos, o TradingView é a plataforma de gráficos preferida. Oferecendo um centro de ferramentas de análise técnica, o poderoso aplicativo da web HTML5 é usado por milhões de pessoas para rastrear movimentos nos mercados Forex, criptomoeda e de ações tradicionais.

O TradingView possui muitos recursos poderosos: ele nos permite rastrear ativos em diversas plataformas de negociação e publicar ideias de negociação em sua rede social. Neste artigo, vamos nos concentrar em sua personalização. Usaremos Pine Script, a linguagem de programação própria do TradingView, que nos concede controle granular sobre nossos layouts de gráficos.

Vamos começar!


O que é Pine Script?

Pine Script é uma linguagem de script que pode ser usada para modificar seus gráficos do TradingView. A plataforma já oferece muitos recursos para isso, mas o Pine Script permite que você dê um passo adiante. Se você deseja alterar as cores de suas velas ou testar 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, verifique 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.


Configurando

É incrivelmente simples começar a usar o Pine Script. Qualquer código que escrevemos é executado nos servidores do TradingView, para que possamos acessar o editor e desenvolver nossos scripts a partir de um navegador – sem necessidade de download ou configuração adicional.

Neste tutorial, vamos traçar o par de moedas Bitcoin/Binance USD (BTCBUSD). Se você ainda não tem uma, vá em frente e crie uma conta gratuita (há uma assinatura profissional disponível também, mas não é necessária para este guia).

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


BTCBUSD Chart on tradingview

O seu provavelmente estará mais atualizado.


Aqui, queremos obter o gráfico completo – clique no botão para acessá-lo. Isso nos dá uma visão muito mais detalhada, ferramentas de desenho e opções para traçar linhas de tendência, entre outras coisas.


Full featured chart on tradingview for BTCBUSD

O gráfico completo. Você pode ajustar o período clicando nas visualizações acima das guias destacadas.


Não discutiremos como usar as diversas ferramentas disponíveis, mas se você leva análise técnica a sério, é altamente recomendável que você se familiarize com elas. No canto inferior esquerdo (destacado na imagem), você verá algumas guias diferentes – clique em Pine Editor.


O editor de pinho


screenshot of the pine editor


Este editor é onde a mágica acontece. Diremos o que queremos fazer e, em seguida, clicaremos em Adicionar ao gráfico para ver nossas anotações aparecerem acima. Observe que as coisas podem ficar complicadas se incluirmos várias anotações de uma vez, então iremos removê-las entre os 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.


Adding first script to tradingview chart


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 removê-lo. Agora, vamos nos aprofundar no código.

estudo("Meu Script")

Esta primeira linha está apenas configurando nossa anotação. Requer apenas o nome que você deseja chamar o indicador ("Meu Script", neste caso), mas também existem alguns parâmetros opcionais que podemos adicionar. Uma delas é 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, o padrão é 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 traçar o preço de fechamento do Bitcoin. plot simplesmente nos fornece um gráfico de linhas, mas também podemos 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ê deverá ver um segundo gráfico (que se parece com o original deslocado para a direita). Em vez disso, tudo o que fizemos foi traçar o preço de abertura e, como a abertura do dia atual é o fechamento do dia anterior, faz sentido que estes tenham uma forma idêntica.

OK! Vamos nos livrar das anotações atuais (lembre-se, fazemos isso clicando com o botão direito e clicando em Remover Indicadores). Passe o mouse sobre Bitcoin / BUSD e clique no botão Ocultar para limpar o gráfico atual também.

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

//@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 determinado, e verdes se o fechamento exceder a abertura. 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)

Isso analisa cada vela e verifica 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 transmitir 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)

Remova 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 normal.


Candlestick chart on tradingview

Lindo!


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

Conhecemos alguns dos princípios básicos. Vamos passar para o 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), na medida em que dá mais peso aos dados mais recentes. Tende a ser mais reativo a movimentos bruscos e é frequentemente utilizado para jogadas de curto prazo (em day trading, por exemplo).


A média móvel simples (SMA)

Poderíamos também representar graficamente o SMA, apenas para podermos comparar os dois depois. Adicione esta linha ao seu script:

plot(sma(fechar, 10))

Isso representa a média dos dez dias anteriores. Ajuste o número entre colchetes para ver como a curva muda ao levar em consideração diferentes comprimentos.


Simple moving average based on previous 10 days

O SMA, com base nos dez dias anteriores.


A média móvel exponencial (EMA)

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

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

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

Multiplicador = 2 / (Comprimento da EMA + 1)

Tal como acontece com as médias móveis simples, precisamos especificar quanto tempo será a EMA. Sintaticamente, a função para traçar a EMA é semelhante à da SMA. Faça um gráfico ao lado do SMA para poder comparar os dois:

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


EMA and SMA on one tradingview chart

Você pode ver uma ligeira diferença nos dois tipos de MA.


➠ Quer começar a usar criptomoedas? Compre Bitcoin na Binance!


Scripts integrados

Até agora, escrevemos nosso código manualmente para que você possa ter uma ideia dele. Mas vamos apresentar algo que pode nos poupar tempo, principalmente se estivermos escrevendo scripts mais complexos e não quisermos fazê-los do zero.

No canto superior direito do seu editor, clique em Novo. Você receberá 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.



Moving average exponential in pine script

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


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


Modifying a chart on tradingview interface


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


changing inputs on EMA


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


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

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

Se você acessar Novo> Estratégia RSI, poderá ver isso por si mesmo. O RSI geralmente é medido em períodos de 14 (ou seja, 14 horas ou 14 dias), mas você pode ajustar essa configuração 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 de comprar o ativo, pois ele pode estar sobrevendido. O RsiSE destaca possíveis pontos para vender o ativo quando ele estiver sobrecomprado. Observe que, como acontece com todos os indicadores, você não deve necessariamente confiar neles como uma evidência infalível de que os preços irão diminuir/aumentar.


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.

Daremos um exemplo de script simples abaixo. 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. Podemos então ver quão lucrativa esta estratégia teria sido historicamente.

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

if (preço <= insira)
estratégia.entry("BuyTheDip", estratégia.long, comentário="BuyTheDip")
if (preço >= saída)
estratégia.close_all(comment="SellTheNews")

Aqui definimos entrada e saída como variáveis ​​– ambas são entradas, o que significa que podemos alterá-las no gráfico posteriormente. Também configuramos a variável preço, que leva o fechamento de cada período. Então, temos alguma lógica na forma de instruções if. Se a parte entre colchetes for verdadeira, o bloco recuado abaixo dela 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á acionado, fechando todas as posições abertas.

Anotaremos o gráfico com setas que mostram onde entramos/saímos, por isso 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.


indicator active on tradingview chart

Agora você pode ver os indicadores no gráfico. Talvez seja 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. Isso permite que você tenha uma visão geral de seus lucros potenciais, uma lista de negociações e cada um de seus desempenhos individuais.


Trading view strategy tester

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


Amarrando tudo

É 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 castiçais, gerando insights que podemos visualizar facilmente.

Isso não deve ser interpretado como aconselhamento financeiro – não existe uma maneira objetivamente correta de usar esse 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 de nossa fórmula EMA anterior. Precisamos fornecer ao multiplicador o comprimento da EMA. Vamos torná-la 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)


Ótimo. Para o RSI. Daremos um comprimento de maneira 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 dependendo dos valores da EMA e do RSI. Vamos considerar uma situação onde (a) o preço de fechamento da vela excede a EMA e (b) onde o RSI está acima de 50.

Por que? Bem, você pode decidir que esses indicadores podem ser usados ​​em conjunto para informar quando comprar ou vender Bitcoin. Por exemplo, você pode pensar que satisfazer 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 operar vendido, mesmo que outros indicadores indiquem o contrário.

Então, 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 um inglês simples, estaremos apenas 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, vamos 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 último, 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.


Tradingview script in action

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


Pensamentos finais

Neste artigo, examinamos alguns exemplos básicos do que você pode fazer com o Pine Editor do TradingView. Até agora, você deve estar confiante em fazer anotações simples em gráficos de preços para obter insights adicionais de seus próprios indicadores.

Aqui nos interessamos apenas por alguns indicadores, mas é fácil criar indicadores mais complexos – selecionando os scripts integrados em Novo ou escrevendo-os você mesmo.

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

  • Um breve guia para o indicador SAR parabólico

  • Um guia para dominar a retração de Fibonacci

  • Indicadores de avanço e atraso explicados

  • Indicador MACD explicado