В Pine появилась возможность объединения входных параметров по группам и строкам

12 мар, 2021

Теперь вы можете объединять входные параметры в группы и строки, делая интерфейс ваших скриптов более функциональным и удобным для отображения.

Используя новые возможности, можно упорядочить входные параметры более аккуратно, как это сделано для встроенного индикатора Auto Fib Retracement.

Для этого в Pine были добавлены два параметра: group и inline. Интегрировать эти параметры в код ваших скриптов очень просто! Посмотрите на этот пример индикатора VWAP с возможностью указать период расчета и включить отображение якорей:

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

Строка, используемая в качестве аргумента group, объединит все входные параметры с таким же значением аргумента под одним заголовком, которым и будет переданная строка.

Все входные параметры, у которых совпадает значение аргумента inline в пределах текущей group, будут объединены в одну строку. Также можно передать пустую строку в title входных параметров, объединенных при помощи inline, если нет необходимости, чтобы в одной строке отображался заголовок каждого их них.
Если входные параметры, объединенные при помощи inline, не поместятся в одну строку, то часть из них будет перенесена на следующую, учтите это при проектировании.

Принцип работы новых параметров описан в Справочнике по языку Pine в разделе функции input() — вы всегда можете получить быструю подсказку, если захотите сделать вкладку входных параметров более удобной.

Обо всех обновлениях Pine читайте в разделе Release Notes в нашем руководстве пользователя.

Мы надеемся, что новая функция окажется для вас полезной. Продолжайте присылать нам отзывы и предложения — мы создаем TradingView для вас и рады узнать, что вы думаете об обновлениях нашей платформы.

Look first Then leap

Мы создали TradingView, чтобы вы могли пользоваться самыми крутыми функциями.
Открыть график