Organizar Inputs de Script em Seções e Linhas

Mar 12, 2021

Nossa última atualização do Pine introduz duas melhorias nos inputs:

  • O novo parâmetro de grupo permite que os programadores definam um cabeçalho de seção para um grupo de entradas.
  • O novo parâmetro em linha permite que várias entradas sejam unidas em uma linha.

Usando estas novas funcionalidades, você pode organizar as entradas de forma mais limpa, como fazemos aqui para o indicador Retração Fib. Automática.

Usar os novos parâmetros em seus scripts é fácil! Dê uma olhada neste exemplo de indicador VWAP, que permite aos usuários especificar os pontos de início e fim dos cálculos, e controlar a exibição das âncoras:

//@version=4
study(title = "Custom Period VWAP", shorttitle = "CPVWAP", overlay = true)

src = input(hlc3, "Source", input.source)
enableHighlight = input(true, "Highlight", input.bool, inline = "Highlight")
highlightType = input("Anchors", "", input.string, options = ["Anchors", "Background"], inline = "Highlight")
highlightColor = input(color.red, "", input.color, inline = "Highlight")
useStartPeriodTime = input(true, "Start", input.bool, group = "Date Range", inline = "Start Period")
startPeriodTime = input(timestamp("20 Jan 2021"), "", input.time, group = "Date Range", inline = "Start Period")
useEndPeriodTime = input(true, "End", input.bool, group = "Date Range", inline = "End Period")
endPeriodTime = input(timestamp("20 Feb 2021"), "", input.time, group = "Date Range", inline = "End Period")

start = useStartPeriodTime ? startPeriodTime >= time : false
end = useEndPeriodTime ? endPeriodTime <= time : false
calcPeriod = not start and not end

var srcVolArray = array.new_float(na)
var volArray = array.new_float(na)
var line startAnchor = line.new(na, na, na, na, xloc.bar_time, extend.both, highlightColor, width = 2)
var line endAnchor = line.new(na, na, na, na, xloc.bar_time, extend.both, highlightColor, width = 2)
useBgcolor = false

if calcPeriod
    array.push(srcVolArray, src*volume)
    array.push(volArray, volume)
else
    array.clear(srcVolArray), array.clear(volArray)

customVwap = array.sum(srcVolArray) / array.sum(volArray)
if enableHighlight
    if highlightType == "Anchors"
        if useStartPeriodTime
            line.set_xy1(startAnchor, startPeriodTime, low)
            line.set_xy2(startAnchor, startPeriodTime, high)
        if useEndPeriodTime
            line.set_xy1(endAnchor, not na(customVwap) ? time : line.get_x1(endAnchor), low)
            line.set_xy2(endAnchor, not na(customVwap) ? time : line.get_x1(endAnchor), high)
    if highlightType == "Background"
        useBgcolor :=  true

bgcolor(useBgcolor and calcPeriod ? highlightColor : na, editable = false)
plot(customVwap, title="CPVWAP", color = color.blue, linewidth = 2)

O argumento do grupo é usado de duas maneiras. A cadeia é usada como cabeçalho para o grupo, e também define quais inputs pertencem a esse grupo.

Quando um argumento inline é usado, todas as chamadas de input() usando o mesmo argumento inline serão unidas em uma linha. O argumento de título de cada chamada de input() determina a legenda do campo. Se nenhum argumento de título for usado na chamada input(), nenhuma legenda será usada para o campo. Se as entradas combinadas usando inline não couberem em uma linha, algumas delas serão unidas na linha seguinte.

Você pode encontrar uma descrição dos novos parâmetros de input() no Manual de Referências para Pine.

Leia sobre todas as atualizações do Pine nas Notas de Lançamento de nosso Manual do Usuário.

Esperamos que você ache útil este recurso tão solicitado. Por favor, continue nos enviando seu feedback para melhorias. Nós construímos o TradingView para nossos usuários e adoramos ouvir você.

Look first Then leap

TradingView is built for you, so make sure you're getting the most of our awesome features
Launch Chart