Organizar las entradas del Script en secciones y líneas

Mar 12, 2021

Nuestra última actualización de Pine introduce dos mejoras en las entradas:

  • El nuevo parámetro de grupo permite a los programadores definir una cabecera de sección para un grupo de entradas.
  • El nuevo parámetro inline permite unir varias entradas en una línea.

Utilizando estas nuevas características puede organizar las entradas de forma más ordenada, como hacemos aquí para el indicador Automático de Fibonacci.

Utilizar los nuevos parámetros en sus scripts es fácil. Eche un vistazo a este ejemplo de un indicador VWAP, que permite a los usuarios especificar los puntos de inicio y fin de los cálculos, y controlar la visualización de los anclajes:

//@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)

El argumento group se utiliza de dos maneras. La cadena se utiliza como cabecera del grupo, y también define qué entradas pertenecen a ese grupo.

Cuando se utiliza un argumento inline, todas las llamadas a input() que utilicen el mismo argumento inline se unirán en una línea. El argumento title de cada llamada a input() determina la leyenda del campo. Si no se utiliza ningún argumento de título en la llamada a input(), no se utilizará ninguna leyenda para el campo. Si las entradas combinadas usando inline no caben en una línea, algunas de ellas se envolverán en la siguiente.

Puede encontrar una descripción de los nuevos parámetros en la entrada del manual de referencia de Pine para input().

Lea sobre todas las actualizaciones de Pine en las Notas de Publicación de nuestro Manual de Usuario.

Esperamos que encuentre útil esta característica tan solicitada. Por favor, siga enviando sus comentarios para mejorarla. Construimos TradingView para nuestros usuarios y nos encanta escuchar sus comentarios.

Look first Then leap

TradingView está hecho para usted, asegúrese de aprovechar al máximo nuestras increíbles funciones
Abrir gráfico