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

Pine Script v5如何复现使用序列作为length参数的RSI行为

Pine Script v5复现v4版RSI传入序列功能的方案

Pine Script v4中rsi(x, y)函数传入两个序列类型参数时,官方逻辑为直接将x识别为上涨变动移动平均值、y识别为下跌变动移动平均值,直接带入RSI公式计算结果,不执行内置的周期平滑步骤。v5中ta.rsi()仅支持传入固定整数作为长度参数,因此手动实现RSI计算公式即可复现原有功能。

实现步骤

  1. 准备好对应v4版本中你要传入RSI函数的两个序列参数,分别对应上涨均值序列upSeries、下跌均值序列downSeries
  2. 使用RSI核心公式手动计算结果:
    RSI = 100 - (100 / (1 + upSeries / downSeries))

完整代码示例

//@version=5
indicator("V4兼容自定义RSI", overlay=false)

// 示例:自行计算涨跌均值序列,可替换为你自己的任意序列逻辑
priceChange = ta.change(close)
// 对应v4中传入RSI的第一个序列参数(上涨均值)
upSeries = ta.rma(math.max(priceChange, 0), 14)
// 对应v4中传入RSI的第二个序列参数(下跌均值)
downSeries = ta.rma(math.abs(math.min(priceChange, 0)), 14)

// 手动计算RSI,完全匹配v4双序列传参逻辑
// 增加边界判断避免除零错误
customRsi = switch
    downSeries == 0 => 100
    upSeries == 0 => 0
    => 100 - (100 / (1 + upSeries / downSeries))

plot(customRsi, "RSI", color=color.new(color.blue, 0))
hline(70, "超买线", color=color.red)
hline(30, "超卖线", color=color.green)

注意事项

  • 代码中的upSeries和downSeries可替换为任意你自己生成的序列值,不需要固定使用RMA算法计算,完全对齐v4版本的使用自由度
  • 边界判断可根据你的实际需求调整,避免极端行情下出现计算错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:45:02