Mini Curso da Linguagem Pine Script (TradingView) - Introdução

Informações sobre o Mini-Curso

  • Versão: 1.0 - 24/06/2020
  • Objetivo: Apresentar noções básicas para a produção de scripts simples utilizando a linguagem Pine.
  • Requisitos:
    • Ter noção de mercados financeiros: Ações, Fundos, Câmbio e etc;
    • Ter noção de programação, de preferência em linguagens de tipagem dinâmica. Por exemplo: Python, JavaScript ou Lua;
    • Noções básicas de interpretação de gráficos.
  • Resultados esperados:
    • Ser capaz de criar um script simples na plataforma TradingView: exemplo o indicadores de média móveis e MACD

O que é o TradingView?

O TradingView (Para uma explicação detalhada sobre a plataforma, veja o link) é uma plataforma on-line de acompanhamento de mercados financeiros com alcance mundial. Além de informações financeiras sobre os mercados globais, a plataforma também oferece uma coleção de ferramentas completa para a análise gráfica dessas informações.

Uma visão geral da plataforma pode ser vista abaixo:

TV-Overview-IBOV.jpg

Na imagem o índice IBOV da Bovespa é apresentado de maneira padrão. Os principais elementos da interface do TradingView são descritos abaixo:

  • Na barra lateral esquerda é apresentada a paleta de ferramentas para análise gráfica;
  • Na barra lateral direita são agrupados valores numéricos de outras informações financeiras. Esses podem ser índices, valores de moeda e etc;
  • Na barra superior são apresentados o nome da informação visualizada (neste caso IBOV), botões para adicionar outras informações e indicadores técnicos ao gráficos e outras opções.

A plataforma pode ser utilizada sem cadastro prévio, porém várias funções são limitadas quando o usuário não está cadastrado e logado na plataforma. Existe um cadastro gratuito, com várias limitações também, e esse cadastro será utilizado como padrão para acompanhamento desse mini-curso. É possível realizar o cadastro no link.

A linguagem de Propósito Específico Pine Script

A linguagem Pine foi desenvolvida para um proposito específico que é o desenvolvimento de indicadores e estrategias de negociação para uso na plataforma TradingView. A maioria dos indicadores pré-definidos na plataforma utilizam a linguagem para sua implementação. A linguagem é simples e tem uma sintaxe semelhante ao JavaScript.

É importante lembrar que o usuário só tem acesso a linguagem Pine quando está logado na plataforma TradingView, mesmo que com a conta básica (gratuita). Assim, assumimos que o estudante esteja logado na plataforma para acompanhar o resto do mini-curso.

Estrutura Básica de um Script Pine

TV-Basic-Script.jpg

Neste exemplo temos o gráfico do valor das ações da Petrobras (PETR3) apresentado no TradingView. No exemplo, o estilo do gráfico foi alterado para modo de velas (termo em inglês Candles). Na parte inferior da figura podemos ver o código-fonte do script Pine, neste exemplo chamado de 'Meu Script', utilizado para mostrar apenas o valor de fechamento (variável close, Ajuda) da ação no gráfico que pode ser visto logo acima do editor do script.

TV-Basic-Script.jpg

Na figura acima podemos ver apenas o resultado do script e seu conteúdo. É importante notar que na linguagem Pine geralmente os resultados dos scripts são novos gráficos que podem ficar separados do gráfico principal, como no exemplo acima, ou serem incorporados no gráfico principal (esse modo não será visto neste mini-curso). Logo abaixo, temos o código-fonte do script.

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

//@version=4
study("Meu Script")
plot(close)

Vamos entender cada linha do script e sua função. Essa primeira linha é um comentário (código inativo na linguagem). Neste exemplo, o comentário está sendo utilizado para deixar declarado a licença do script.

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

Nesta linha abaixo, temos um tipo especial de comentário na linguagem. Esse comentário define qual versão de linguagem deve ser utilizada para interpretar o script. Atualmente a versão mais atual da linguagem é a versão 4.0. Cada versão possui diferentes recursos na linguagem e também pode apresentar variações na sintaxe de escrita dos scripts. Em geral utilizaremos a versão atual, 4.0.

//@version=4

Aqui utilizamos a função study para definir que este é um script de um indicador e que seu nome é 'Meu Script'. Existem vários outros parâmetros para a função study, um deles é o parâmetro overlay que define se o indicador será apresentado junto com o gráfico principal. Por padrão o parâmetros overlay é False, o que define que o gráfico será apresentado em um espaço separado. Mais informações sobre a função study no link.

study("Meu Script")

A última linha de código utiliza a função plot para desenhar o gráfico na tela do TradingView. Essa é uma das principais funções da linguagem Pine. No caso do nosso exemplo, estamos utilizando a variável global close como fonte de informação para a função plot. Mais informações sobre a função plot no link.

plot(close)

Variáveis Globais

As principais variáveis globais relacionadas aos valores da informação que está sendo apresentada no gráfico principal do TradingView são:

  • close: Valores de fechamento da símbolo do gráfico[1]. No caso do símbolo não estar fechado ainda, por exemplo o pregão da Bovespa não terminou ainda no momento da visualização, a variável vai apresentar o valor corrente do símbolo. Mais informações sobre a variável no link;
  • open: Valores de abertura do símbolo. Mais informações sobre a variável no link;
  • high: Valores de alta do símbolo. Mais informações sobre a variável no link;
  • low: Valores de baixa do símbolo. Mais informações sobre a variável no link;
  • volume: Volume de negociações do símbolo. Mais informações sobre a variável no link.

Como cada uma dessas variáveis globais mantêm as informações sobre vários dias elas não contem um único valor como uma variável tradicional de outra linguagem de programação. Ao invés disso essas variáveis são semelhantes à vetores ou arrays definidos em outras linguagens de programação. Assim, quando o código plot(close) é executado ele utiliza as informações de todos os dias apresentados no gráfico principal para desenhar na tela do indicador que está sendo implementado.

TV-Basic-VarGlob1.jpg

Neste exemplo, temos um indicador que apresenta o diferença entre o valor de fechamento e de abertura de um símbolo. Note que todos os dias apresentados no gráfico principal serão calculados, isso por conta de cada um dos valores nos dias estão mantidos nas variáveis close e open. Assim, a operação de subtração será realizada para cada valor contidos nessas variáveis e seus resultados serão desenhados pela função plot.

Indicador de Duas Médias Simples

Para implementar esse indicador iremos utilizar a função de média simples ou média aritmética, a função sma. Mais informações sobre a função sma no link.

plot(sma(close,10), color=color.green, transp=50)

Esse código calcula a média simples para os últimos 10 valores da variável global close. Assim, no exemplo, para cada valor retornado pela função esse é calculado pelo últimos 10 valores contidos na variável close. O resultado pode ser visto na figura abaixo.

TV-Basic-SMA1.jpg

Neste exemplo também utilizamos outros parâmetros da função plot, color definindo a cor da linha do gráfico para verde (color.green) e o transp definindo o nível de transparência no desenho da linha (50% de transparência).

No último exemplo, vamos apresentar um indicador contendo duas linhas no gráfico: Uma para média de 10 dias e outra para a média de 200 dias. Desta forma temos duas chamadas para a função plot, cada uma contendo seus dados e sua configuração de aparência para o gráfico. Além disso, temos em cada chamada da função plot, uma chamada para a função sma configurando o período para cada uma das situações.

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

//@version=4
study("Meu Script")
plot(sma(close,10), color=color.blue, transp=30)
plot(sma(close,200), color=color.gray, transp=30)

Podemo visualizar o resultado do código na figura abaixo. É importante notar que cada chamada a função plot produz uma linha no gráfico e seus valores pontuais no gráfico são apresentados na parte superior. A ordem de chamada das funções sempre define a ordem de apresentação desses valores.

TV-Basic-SMA2.jpg
Bibliography
1. Informação que está sendo apresentada no gráfico principal do TradingView;
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License