Visão geral das funções de diálogo

From TradingView Wiki
Jump to: navigation, search
Language: English  • 日本語 • Português • Русский


O ‘estudo’ de anotações

Como foi observado na sessão de ‘Estrutura do Programa’, cada script precisa conter uma chamada da anotação da função estudo. Funções possuem as assinaturas a seguir:

Study( title, shorttitle, overlay, precision)

A função assinada determina as características de todos os indicadores como um todo. Apenas title é um argumento necessário que define o nome do indicador. Esse nome será usado no diálogo do indicador.

shorttitle é o nome curto do indicador disponível na legenda do gráfico. Se isso não está especificado, então aparecerá o title definido.

overlay é um código lógico. Se foi verdadeiro (true) o estudo sera adicionado como uma sobreposição no topo da série principal. Se for falso (false) ele será adicionado em um painel separado do gráfico; false é a configuração padrão.

precision número de dígitos depois de um ponto variável para valores de estudo no eixo de preços. Não pode ser um número inteiro negativo. Precisão 0 tem regras especiais para formatar números muito longos (como volume, ex.: '5183' sera formatado como '5K'). Valor padrão é 4.

Resultado no Gráfico ‘plot’

A anotação plot aceita um argumento obrigatório: o tipo do valor de série e a exibição nele no gráfico como uma linha. Um argumento básico apareceria assim:

plot(close)

Contudo, porque existem convenções automáticas no Pine, em vez de um tipo de valor de série, qualquer valor numérico pode ser transmitido. Por exemplo:

plot(125.2)

Neste caso, o valor 125.2 será convertido automaticamente para um valor de tipo de série que será o mesmo número em cada barra. O plot será representado como uma linha horizontal. O diálogo plot tem muitos argumentos opcionais, em particular aqueles que serão exibidos no gráfico de maneira estilizada: style, color, title, linewidth, transparency, dentre outros. Descrições adicionais desses argumentos podem ser encontrados aqui.ed

O parâmetro color pode haver efeitos diferentes dependendo do valor transmitido. Se for igual a uma constante do tipo de cor, por exemplo, vermelho, o gráfico inteiro será plotado com uma cor vermelha:

plot(close, color=red)

Output of charts plot 1.png

Contudo, o argumento color pode receber uma expressão de um tipo de série de valores coloridos como valores. Essa série de cores será usada para colorir o gráfico quando renderizado. Por exemplo:

c = close >= open ? lime : red
plot(close, color = c)
Output of charts plot 2.png

O interesse também representa o offset da função plot. Especifica o movimento usado quando o gráfico é plotado (valores negativos se movimentam um pouco mais a esquerda, enquanto valores positivos mais a direita). Por exemplo:

study("MeuScript 12", overlay=true)
plot(close, color=red, offset=-5)
plot(close, color=lime, offset=5)

Output of charts plot 3.png

Como podemos ver o print de tela, as series em vermelho se movimenta mais para a esquerda (desde que o valor do argumento ‘offset’ é negativo), enquanto a serie verde se movimenta para a direita (o valor ‘offset’ é positivo).

Nota de rodapé. No Pine é incorporada a função offset que também autoriza a serie de valores a se movimentarem, mas apenas para a direita. Ao mesmo tempo que valor “out of range” da barra atual são descartados. A vantagem do 'offset' encontra-se no fato de que seu resultado pode ser usado em outras expressões para executar cálculos complexos. No caso do argumento "offset" da função "plot", a mudança parece ser meramente um efeito visual do enredo.


Series de Barras Colorias — ‘barcolor’

A função de anotação ‘barcolor’ lhe permite especificar a cor para o candle dependendo da realização de certas condições. O script de exemplo a seguir da diferentes cores fora e dentro dos candles.

study("barcolor example", overlay=true)
isUp() => close > open
isDown() => close <= open
isOutsideUp() => high > high[1] and low < low[1] and isUp()
isOutsideDown() => high > high[1] and low < low[1] and isDown()
isInside() => high < high[1] and low > low[1]
barcolor(isInside() ? yellow : isOutsideUp() ? aqua : isOutsideDown() ? purple : na)

Barcoloring a series barcolor 1.png

Como você pode ver, ao passar o valor definido as cores permanecem na cor do gráfico padrão.

Colorindo o fundo do gráfico — ‘bgcolor’

Parecido com a função “barcolor” a função “bgcolor” muda a cor do fundo do gráfico. Função sera a cor que pode ser calculada em uma expressão, e um parâmetro opcional “transp” – opacidade (transparência) de 0-100, no qual 90 é padrão.

Como no exemplo, um script que pinta as sessões de negociações (usado no EURUSD, 30 minutos de tempo gráfico):

study("bgcolor example", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
premarket = #0050FF
regular = #0000FF
postmarket = #5000FF
notrading = na
sessioncolor = timeinrange("30", "0400-0930") ? premarket : timeinrange("30", "0930-1600") ? regular : timeinrange("30", "1600-2000") ? postmarket : notrading
bgcolor(sessioncolor, transp=75)

Background coloring bgcolor 1.png

Inputs do Indicador

Diálogos de ‘input’ fazem possível indicar qual variáveis no código do indicador serão analisadas. Aplicações serão geradas por variáveis na janela de propriedades do indicador (propriedade/atributos) para alterar valores de maneira mais conveniente do que modificando os códigos do script. Você também pode especificar o título do input na forma de um pequeno texto. O título é designado para explicar o propósito do input, e você pode especificar a mínima e a máxima possível nos valores de inputs numéricos.

Quando o diálogo é escrito, no Pine há os seguintes tipos de:

  • bool,
  • integer,
  • float,
  • string,
  • symbol,
  • resolution,
  • session,
  • source.

Os exemplos seguintes mostram como criar, em código, cada input e o que essas aplicações expressam.

b = input(title="On/Off", type=bool, defval=true)
plot(b ? open : na)

Inputs of indicator 1.png


i = input(title="Offset", type=integer, defval=7, minval=-10, maxval=10)
plot(offset(close, i))

Inputs of indicator 2.png


f = input(title="Angle", type=float, defval=-0.5, minval=-3.14, maxval=3.14, step=0.2)
plot(sin(f) > 0 ? close : open)

Inputs of indicator 3.png


sym = input(title="Symbol", type=symbol, defval="SPY")
res = input(title="Resolution", type=resolution, defval="60")
plot(close, color=red)
plot(security(sym, res, close), color=green)

Inputs of indicator 4.png A aplicação de input ‘symbol’ tem um símbolo ‘search’ que é ativado automaticamente quando os primeiros símbolos do registrador são inseridos.


s = input(title="Session", type=session, defval="24x7")
plot(time(period, s))

Inputs of indicator 5.png


src = input(title="Source", type=source, defval=close)
ma = sma(src, 9)
plot(ma)

Inputs of indicator 6.png


Encontre mais informações sobre inputs de indicadores em Pine Reference.

Níveis de preço ‘hline’

O função ‘hline’ processa uma linha horizontal a um determinado nível de preço fixo. Por exemplo:

study(title="Chaikin Oscillator", shorttitle="Chaikin Osc")
short = input(3,minval=1), long = input(10,minval=1)
osc = ema(accdist, short) - ema(accdist, long)
plot(osc, color=red)
hline(0, title="Zero", color=gray, linestyle=dashed)

Price levels hline 1.png

O número precisa ser o primeiro argumento da ‘hline’. Valores de um tipo de series são negados. É possível criar algumas linhas horizontais com a ajuda de "hline" e preencher o plano de fundo entre elas com uma luz translúcida usando a função "fill".

Preenchendo o fundo do gráfico entre os objetos com “fill”

A função ‘fill’ permite colorir o plano de fundo entre duas séries ou duas linhas horizontais (criadas com hline). O exemplo a seguir ilustra como isso funciona:

study("fill Example")
p1 = plot(sin(high))
p2 = plot(cos(low))
p3 = plot(sin(close))
fill(p1, p3, color=red)
fill(p2, p3, color=blue)
h1 = hline(0)
h2 = hline(1.0)
h3 = hline(0.5)
h4 = hline(1.5)
fill(h1, h2, color=yellow)
fill(h3, h4, color=lime)

Filling in the background between objects with fill 1.png

Nota de rodapé: nunca execute um preenchimento entre "plot" e "hline". No entanto, é possível exibir, com a ajuda de "plot", uma série de valores idênticos (que se parecem com uma linha horizontal, semelhante a "hline") e executar um preenchimento entre ela e outro gráfico. Por exemplo:

study("Fill example 2")
src = close, len = 10
ma = sma(src, len)
osc = 100 * (ma - src) / ma
p = plot(osc)
// NOTE: fill(p, hline(0)) wouldn't work, instead use this:
fill(p, plot(0))

Filling in the background between objects with fill 2.png

Você pode preencher com cor usando as constantes 'color=red' ou 'color=#ff001a' bem como expressões complexas como 'color = close >= open ? green : red'. Exemplo:

//@version=2
study(title="Colored fill")
line1=sma(close,5)	
line2=sma(close,20)
p1 = plot(line1)
p2 = plot(line2)
fill(p1, p2, color = line1>line2 ? green : red)

Filling in the background between objects with fill 3.png

Alertas condicionados

Função alertcondition lhe possibilita criar alertas personalizados nas condições dos estudos em Pine.

A função tem a seguinte assinatura:

alertcondition(condition, title, message)

condition é uma série de valores booleanos que são usados para um alerta. Valores disponíveis: true, false. True (verdadeiro) significa que a condição do alerta foi atendida, o alerta deve disparar. False (falso) significa que a condição do alerta não foi atendida, o alerta não irá disparar. É um código obrigatório.

title é um código opcional que define um nome de um alerta condicionado.

message é um código opcional que especifica o texto que será enviado em forma de mensagem quando o alarme for disparado.

Veja o exemplo da criação de um alerta condicionado:

//@version=2
study("Exemplo de alerta condicionado")
src = input(close)
ma_1 = sma(src, 20)
ma_2 = sma(src, 10)
c = cross(ma_1, ma_2)
alertcondition(c, title='Vermelho cruza o azul', message= 'Vermelho e azul acabam de cruzar!')
plot(ma_1, color=red)
plot(ma_2, color=blue)

Essa função cria um alerta condicionado que está disponível no diálogo Criar Alerta. Observe, que alertcondition não dispara alarmes automaticamente, isso apenas lhe da a oportunidade de criar um condição customizada no diálogo Criar Alerta. Alertas precisam ser definidos manualmente. Também, um alerta disparado baseado emu ma condição customizada que você criou em código Pine não é exibido no gráfico.

Um script pode incluir mais de um alertcondition.

Para criar um alerta baseado em alertcondition, deve-se aplicar um código Pine (estudo) com alertcondition no gráfico atual, abra o diálogo de Criar Alerta, selecione o código Pine aplicado como condição principal para o alerta, e escolha a condição de alerta específica (implementado no próprio código).

Alertas no Pine 1.png

Depois

Alertas no Pine 2.png

Quando o alerta disparar você verá essa mensagem:

Alertas no Pine 3.png


Previous: Non-Standard Chart Types Data, Next: Shapes using plotshape, plotchar, plotarrow, Up: Pine Script Tutorial