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

NodeJS计算相对强弱指数(RSI)与Trading View结果不符求助

NodeJS实现匹配Trading View的RSI指标问题

我已经花费两天多时间在NodeJS中计算交易指标相对强弱指数(RSI),尝试了网上能找到的所有RSI计算包及技术指标工具,但计算结果与券商图表和Trading View显示的RSI值均不匹配(二者显示值一致)。

Trading View公布了其RSI计算公式,其中rma()函数代表“相对移动平均(Relative Moving Average)”,alpha变量是基于周期的权重系数,应用于源数据。

我按上述公式在NodeJS中实现了如下代码:

let change;
let gain = [];
let loss = [];

for (i = 0; i < closingPrices.length - 1; i++) {
    change = closingPrices[i + 1] - closingPrices[i];

    // 处理上涨幅度
    if (change >= 0) {
        gain.push(change);
    } else {
        gain.push(0);
    }

    // 处理下跌幅度
    if (change < 0) {
        loss.push(-1 * change);
    } else {
        loss.push(0);
    }
}

// Trading View定义的相对移动平均计算
function RMA(source, length) {
    let rma = (1 / length) * source[0] + (1 - (1 / length)) * source[1];
    return rma;
}

let avgGain = RMA(gain, 14);
let avgLoss = RMA(loss, 14);
let rs = avgGain / avgLoss;
let rsi = 100 - 100 / (1 + rs);

closingPrices为某只股票过去一年至今每个交易日的收盘价数组,我已验证该数据完全符合历史记录,其他指标如SMA计算均正确,仅RSI计算存在问题。

我用上述脚本计算Shopify(SHOP)股票的RSI,结果为49.43%,但Trading View显示的真实RSI值为42.20%,结果明显错误。

我已尝试三种已知RSI计算方法:基于简单移动平均、指数移动平均、Wilder平滑法的RSI,均无法匹配目标值。

我找到一个能匹配Trading View RSI的Python脚本,但不熟悉Python,希望有人将其翻译成JavaScript。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:03:34