Pine script 如何在pine脚本中获取close数据子集的stdev
我不熟悉Tradingview的Pine脚本,我似乎无法通过谷歌搜索找到答案。假设我想计算一只股票收盘价过去60个值的标准偏差,但跳过最近20个收盘价。换句话说,我想在总共40个数据点上计算stdev(或其他函数),从60个数据点开始,而不使用最近的20个数据点。我想有一些方法可以“切片”接近序列来获得这40个数据点,但我一直找不到。我该怎么做Pine script 如何在pine脚本中获取close数据子集的stdev,pine-script,Pine Script,我不熟悉Tradingview的Pine脚本,我似乎无法通过谷歌搜索找到答案。假设我想计算一只股票收盘价过去60个值的标准偏差,但跳过最近20个收盘价。换句话说,我想在总共40个数据点上计算stdev(或其他函数),从60个数据点开始,而不使用最近的20个数据点。我想有一些方法可以“切片”接近序列来获得这40个数据点,但我一直找不到。我该怎么做 //@version=4 study("Subset StdDev", overlay=true) src
//@version=4
study("Subset StdDev", overlay=true)
src = input(close, type=input.source)
var int total_bars = input(60) // Starting point, number of bars back
var int datapoints = input(40) // Number of datapoints from starting point to perform stddev calculation on
var float[] a_values = array.new_float()
var float stddev = na
array.push(a_values, src) // add value for current bar to the end of the array
if array.size(a_values) > total_bars // array size > 60 ?
array.shift(a_values) // remove first element to keep array size at 60
stddev := array.stdev(array.slice(a_values, 0, datapoints)) // calculate stddev for first 40 datapoints in the array
// plot a stddev band on the current candle, using 40 datapoints (from 60 bars ago to 20 bars ago)
plot(src + stddev)
plot(src - stddev)