Pine script TradingView Pine脚本RMA如何工作?

Pine script TradingView Pine脚本RMA如何工作?,pine-script,moving-average,indicator,Pine Script,Moving Average,Indicator,我面临的问题是,我想实施与交易视图中相同的指标,但我无法正确实施RMA指标 如果参考文档,我会得到以下代码: pine_rma(src, length) => alpha = length sum = 0.0 sum := na(sum[1]) ? sma(src, length) : (src + (alpha - 1) * nz(sum[1])) / alpha func RMA(value []float64, period int) float64 {

我面临的问题是,我想实施与交易视图中相同的指标,但我无法正确实施RMA指标

如果参考文档,我会得到以下代码:

pine_rma(src, length) =>
    alpha = length
    sum = 0.0
    sum := na(sum[1]) ? sma(src, length) : (src + (alpha - 1) * nz(sum[1])) / alpha
func RMA(value []float64, period int) float64 {
    var sum float64 

    for i := period - 1; i >= 0; i-- {
        sum = (sum * (float64(period) - 1) + value[i]) / float64(period)
    }

    return sum
}
我对其中的一切都很清楚,除了可能发生的whenna(sum[1])情况。我是否正确理解nz(sum[1])sum的先前值

当我尝试在golang中实现它时,他们编写了以下代码:

pine_rma(src, length) =>
    alpha = length
    sum = 0.0
    sum := na(sum[1]) ? sma(src, length) : (src + (alpha - 1) * nz(sum[1])) / alpha
func RMA(value []float64, period int) float64 {
    var sum float64 

    for i := period - 1; i >= 0; i-- {
        sum = (sum * (float64(period) - 1) + value[i]) / float64(period)
    }

    return sum
}
我在返回的数据中有很大的差异

我试图理解什么是价值观​​当RMA的输入参数为

src[0]=0,src[1]=0src[2]=0.12

我们明白了

rma[0]=0.06,rma[1]=0.04rma[2]=0.03

我不明白这些数字是从哪里来的,因为我用原始公式中的src来代替,我们得到的是最不同的数字

我从福特MTR CO DEL,1D,Cboe BZX图表中为RSI创建的下行数组中获取了2020年9月2日的基准数据