Теперь вы можете объединять входные параметры в группы и строки, делая интерфейс ваших скриптов более функциональным и удобным для отображения.
Используя новые возможности, можно упорядочить входные параметры более аккуратно, как это сделано для встроенного индикатора 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 для вас и рады узнать, что вы думаете об обновлениях нашей платформы.