首页 > 解决方案 > TradingView Pine Script RMA 如何运作?

问题描述

我遇到的问题是我想实现与交易视图中相同的指标,但我无法正确实现 RMA 指标。

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

pine_rma(src, length) =>
    alpha = length
    sum = 0.0
    sum := na(sum[1]) ? sma(src, length) : (src + (alpha - 1) * nz(sum[1])) / alpha

除了何时na(sum[1])可能发生的情况外,其中的一切对我来说都很清楚。我是否正确理解nz(sum[1])sum的前一个值。

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

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 中按顺序获得哪些值,周期为 3,当它的输入参数是

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

我们明白了

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

而且我不明白这些数字是在哪里取的,因为我在原始公式中替换了 src,我们得到了最不同的数字。

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

标签: pine-scriptmoving-averageindicator

解决方案


推荐阅读