Ferramentas do usuário

Ferramentas do site


Este projeto só é possível com o apoio e colaboração dos próprios visitantes.

E não precisa ser contribuição financeira! Eu não vou bloquear nenhum conteúdo, mas...
Se o conteúdo te ajudar de alguma forma, considere retribuir desativando o bloqueador de propagandas.

👍
tradingview:logica_programacao:fundamentos

Fundamentos

Versões

Linguagem

  • 4 versões da linguagem Pine Script.
  • A diretiva do compilador deve ser usada na primeira linha do script para especificar a versão.
  • // @version=N
    
    • Onde N é o número da versão : 1 - 4
    • Nota: As versões são incompatíveis entre si.

Documentação


Comentários

  • Pine Script aceita comentários de linha única.
  • A Linha deve iniciar com //
  • Comentário não pode estar entre declarações.
  • Atalho : Selecionar o conteúdo e [Ctrl + /]
// @version=4
study("Teste")
// Está uma linha de comentário
a = close // Este também é um comentário
plot(a)

Quebra de Linha

  • Instruções longas podem ser colocadas em mais de uma linha.
  • Uma declaração deve começar no início da linha.
  • Ao passar para a próxima linha -
    • A continuação deve começar com um ou vários espaços múltiplos de 4 + 1).
  • Exemplos:
a = open + high + low + close

a = open +
	high +
		low +
			close

Identificadores

  • São nomes usados para variáveis e funções definidas pelo desenvolvedor.
  • Devem ser compostos por:
    • Letras maiúsculas ( A - Z ) ou minúsculas ( a - z )
    • Sublinhado ( _ )
    • Dígitos ( 0 - 9 )
  • Identificadores não podem iniciar com dígitios.
  • São sensíveis a maiúsculas e minúsculas.
  • Exemplos de identificadores válidos:
myVar
_myVar
my123Var
MAX_LEN
max_len

Tipos de Dados

  • Existem 9 tipos de dados:
int Inteiro Números inteiros são descritos sem notação decimal

Exemplos:
1
750
100
float Decimal Números ponto flutuante possuem um delimitador ( . )
Também podem conter o símbolo e ou E - que significa multiplicar por 10. Elevado a potência x, onde x é o número após e.

Exemplos:
3.1415
6.02e23
1.6e-19
3.0
bool Booleano Apenas dois literals representam valores bool
true = Verdadeiro
false = Falso
color Cor
Hexadecimal
Cores tem o seguinte formato
#6 a 8 dígitos hexadecimal, representando valores RGB ou RGBA
R = Red = Vermelho
G = Green = Verde
B = Blue = Azul
[0-255 em decimal] <conversor> [00-FF em Hexa]

Exemplos:
#000000 = preto
#FF0000 = vermelho
#00FF00 = verde
#0000FF = azul
#FFFFFF = branco
#808080 = cinza
#3FF7A0 = uma cor aleatória
#FF000080 = 50% transparente vermelho
#FF0000FF = mesmo que #FF0000, vermelho opaco
#FF000000 = completamente transparente

Notação hexadecimal não são sensíveis a maiúsculas ou minúsculas.

Variáveis nativas para chamar uma cor:
color.silver, color.gray, color.white, color.maroon, color.red, color.purple, color.fuchsia, color.green, color.lime, color.olive, color.yellow, color.navy, color.blue, color.teal, color.aqua, color.orange

Transparência: É possível alterar a transparência da cor usando uma função nativa color.new.
Exemplo: color.new(color.blue, 80)
string Texto As literals de string (texto) podem ser referenciadas com aspas simples ou aspas dupla

Exemplos:
“Este é um texto dentro de aspas dupla”
'Este é um texto dentro de aspas simples'

Exemplo de mistura de aspas:
“It's an example”
'The “Star” indicator'

Se você usar o mesmo delimitador, é necessário usar \ antes do delimitador
'It\'s an example'
“The \”Star\“ indicator”
line / label Linha Objetos de desenho introduzidos no Pine v4.
Estes objetos são criados através das funções

line.new → Linha
label.new - > Label

Ambas do formato Série
plot / hline Plotagem Anotações que retornam valores que representam objetos criados no gráfico.

A função plot - Retorna um objeto do tipo plot, representado como uma linha ou diagrama no gráfico.

A função hline - Retorna um objeto do tipo hline, representado como uma linha horizontal.

Estes objetos podem ser passados para a função fill para colorir a área entre eles.
  • E para cada tipo de dado existem 5 formatos possíveis:
Literal Literal Notação para representar um valor fixo (literalmente):
literal float ( 3.14, 6.02E-23, 3e8 )
literal int ( 42 )
literal bool ( true, false )
literal string ( “Um texto literal” )
literal color ( #FF55C6 )

Nota: identificadores nativos como open, high, low, close, volume, time hl2, hlc3, ohlc4 - não são literals. Estes são dados do formato Série.
Const Constante São pré determinados ou podem ser calculados durante compilação.
Não podem ser alterados durante execução.
c1 = 0
c2 = c1 + 1
c3 = c1 + 1
if open > close
	c3 := 0 

c1 : é uma const int porque é inicializada com uma expressão literal int.
c2 : é uma const int porque é inicializada com uma expressão aritmética do tipo const int.
c3 : é uma series int porque é alterada durante execução.

Input Parâmetro Não é alterado durante a execução e não são conhecidos durante compilação e é originado por uma função input
p = input(10, title="Periodo")

p : é uma variável do tipo input integer.

Simple Simples Não é alterado durante execução do script.
Não são conhecidos durante compilação.

São valores que vêm das informações do ativo do gráfico principal.

Por exemplo, syminfo.mintick é uma variável nativa simple float.

Nota : A palavra simple é normalmente omitida quando se referindo a este formato, por tanto nos referimos apenas como float.
Series Série Podem ser alterados durante execução.
Armazenam uma sequência histórica de valores associados as barras do ativo no gráfico principal.

Dados são acessados usando o operador [ ]
Nota : O dado associado a última barra está disponível para leitura / escrita.

Exemplos de séries nativas são as variáveis: open, high, low, close, volume e time.
O tamanho da série é igual a quantidade de barras disponíveis no ativo atual e na sua respectiva resolução (timeframe).

Séries devem conter valores numéricos ou um valor especial : na - significando que não há um valor disponível.

Qualquer expressão que contém uma série também será tratada como série, exemplo:
a = open + close // Adição de duas séries
b = high / 2 // Divisão de uma série por um int literal constant
c = close[1] // Se refere ao close anterior 

IMPORTANTE: O par “formato tipo” é normalmente referenciado como o tipo apenas.


Outros

  • array
    • Arrays no Pine são identificadas com um array id.
    • A array por si no Pine não é um tipo porém subgrupo dos tipos fundamentais:
      • int []
      • float []
      • bool []
      • color []
  • void
    • Existe o tipo void em Pine. A maior parte das funções que apenas executam uma tarefa sem retornar necessariamente um valor, retornam o resultado void. (vazio)
  • na value (not available)
    • Similar ao tipo “null” em outras linguagens de programação.
    • Para inferir o valor na em uma variável, é necessário informar o tipo, por exemplo:
myVar = na // Erro
float myVar = na // Correto
myVar = float(na) // Correto
  • Dica, testar se uma variável não possui valor disponível:
    • Não use operadores == para testar valores na.
myClose = na(myVar) ? 0 : close
  • tuple
    • Suporte limitado no Pine - em relação ao conceito completo de tuple
    • No Pine é possível criar apenas tuple dupla.
    • Uma sequência imutável de valores usada quando uma função deve retornar mais de uma variável como resultado.
calcSumAndMul(a, b) =>
    sum = a + b
    mul = a * b
    [sum, mul]
  • Devem ser chamadas de forma diferente:
    • Os valores sum e mul serão armazenados em s e m, respectivamente.
[s, m] = calcSumAndMul(high, low)

Casting de Tipos

s = sma(close, len) // Erro
s = sma(close, int(len)) // Correto

tradingview/logica_programacao/fundamentos.txt · Última modificação: 30/01/2022 01:21 por schillerapp