さらに多くのPine関数で動的な期間引数がサポートされるようになりました

02 4, 2021

9月に、いくつかの内蔵Pine関数で期間引数に動的な値がサポートされるようになりました。そして今回このリストをさらに拡張しました。以下の関数でも、動的に計算される期間を使用できるようになりました:

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

期間の引数に系列を渡すことで、可変期間で計算を行う適応性のあるPineインジケーターを簡単に作成することができます。例えば次のスクリプトでは、内蔵の stdev() 関数を使用してVWAPインジケーターの標準偏差バンドを計算しています。stdev() の計算期間は、VWAPの期間がリセットされるまでバーごとに1つずつ増加します:

//@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のすべてのアップデートについては、ユーザーマニュアルのリリースノートをご覧ください。

ご要望のこの新機能がお役に立てば幸いです。フィードバックやご提案がございましたらお寄せください。当社はお客様のためにTradingViewを構築しており、プラットフォームのアップデートについてのご意見をお待ちしております。

Look first Then leap

あなたのためのTradingView、その最高の機能を最大限にご活用ください
チャートを起動