You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript/TypeScript中复现TradingView的RMA指标

实现TradingView的ta.RMA指标(TypeScript版)

先明确TradingView中ta.RMA的核心逻辑(对应你提供的Pine代码):

  • 平滑系数 alpha = 1 / length
  • 第一个RMA值用对应周期的简单移动平均(SMA)初始化
  • 后续每个RMA值遵循公式:alpha * 当前数据 + (1 - alpha) * 上一个RMA值

以下是补全后的relativeMovingAverage函数,同时兼容边界情况处理:

function simpleMovingAverage(data: number[], period: number) {
    if (data.length < period) return null

    let sum = 0
    for (let i = 0; i < period; i++) {
        sum += data[i]
    }

    const smaValues = [sum / period];

    for (let i = period; i < data.length; i++) {
        sum = sum - data[i - period] + data[i];
        smaValues.push(sum / period);
    }

    return smaValues
}

function relativeMovingAverage(data: number[], period: number) {
    // 边界处理:数据长度不足周期时返回null
    if (data.length < period) return null

    const alpha = 1 / period
    const rmaValues: number[] = []

    // 第一步:用对应周期的SMA作为第一个RMA值
    const sma = simpleMovingAverage(data, period)
    if (!sma) return null
    rmaValues.push(sma[0])

    // 从第period个数据开始计算后续RMA值
    for (let i = period; i < data.length; i++) {
        const prevRma = rmaValues[rmaValues.length - 1]
        const currentRma = alpha * data[i] + (1 - alpha) * prevRma
        rmaValues.push(currentRma)
    }

    return rmaValues
}

// 测试数据
const t = [
    39.69999999999709, 77.19999999999709,
    69.79999999998836, 48.90000000000873,
    28.40000000000873, 25.19999999999709,
                 16.5,                10,
    59.89999999999418, 52.90000000000873,
    22.80000000000291,              97.5,
   103.39999999999418,              63.5,
    79.69999999999709, 97.60000000000582,
    57.29999999998836, 23.69999999999709,
    89.79999999998836, 33.60000000000582
]

// 示例调用(比如周期设为10)
const rmaResult = relativeMovingAverage(t, 10)
console.log(rmaResult)

关键说明

  • 函数首先检查数据长度是否满足周期要求,避免越界错误
  • 复用已实现的simpleMovingAverage生成初始值,和Pine代码逻辑完全对齐
  • 后续迭代严格遵循RMA的递推公式,确保和TradingView的ta.RMA计算结果一致

内容的提问来源于stack exchange,提问作者PowerKuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 10:02:29