Еще больше функций в Pine теперь поддерживают динамическую длину

4 фев, 2021

В сентябре некоторые из наших встроенных функций Pine стали поддерживать динамические значения в качестве аргументов длины. Сегодня мы расширяем этот список. Следующие функции теперь также можно использовать с динамически вычисляемыми длинами:

bb()
bbw()
cci()
cmo()
cog()
correlation()
dev()
falling()
mfi()
percentile_linear_interpolation()
percentile_nearest_rank()
percentrank()
rising()
roc()
stdev()
stoch()
variance()
wpr()

Передача серии в качестве аргумента длины упрощает создание адаптивных индикаторов, которые будут вычисляться на основе сменяющихся периодов. Например, следующий скрипт использует встроенную функцию stdev() для вычисления диапазонов стандартного отклонения индикатора VWAP. Длина, передаваемая stdev(), увеличивается на 1 с каждым баром, пока период VWAP не сбрасывается:

//@version=4
study(title="VWAP", shorttitle="VWAP", overlay=true)
src = input(title = "Source", type = input.source, defval = hlc3)
t = time("D")
start = na(t[1]) or t > t[1]
sumSrc = src * volume
sumVol = volume
sumSrc := start ? sumSrc : sumSrc + sumSrc[1]
sumVol := start ? sumVol : sumVol + sumVol[1]
vwapValue = sumSrc / sumVol
var barsSinceStart = 0
if start
    barsSinceStart := 0
barsSinceStart := barsSinceStart + 1
stdevLen = bar_index == 0 ? 3000 : barsSinceStart // max_bars_back workaround
vwapStdev = stdev(vwapValue, stdevLen)
plot(vwapValue, title="VWAP", color=color.blue)
upperBand = plot(vwapValue+vwapStdev, title="Upper Band", color=color.green)
lowerBand = plot(vwapValue-vwapStdev, title="Lower Band", color=color.green)
upperBand2 = plot(vwapValue+vwapStdev*2, title="Upper Band 2", color=color.yellow)
lowerBand2 = plot(vwapValue-vwapStdev*2, title="Lower Band 2", color=color.yellow)
fill(upperBand2, lowerBand2, color=color.yellow, transp=95)

Обратите внимание, эти функции требуют оценки на каждом баре, поэтому их следует использовать вне циклов for или блоков if, которые не выполняются на каждом баре. Кроме того, передача серии в качестве длины для встроенной функции может иногда вызывать ошибку «Pine cannot determine the referencing length of a series». Вы можете узнать больше об этой ошибке и о том, как ее обойти, в нашем Справочном центре.

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

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

Look first Then leap

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