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

如何按百分比调整RSI等技术指标的显示数值?

技术指标数值的百分比调整方案(以RSI为例)

需求说明

需要实现RSI、Stochastic这类技术指标的输出数值按百分比调整功能,例如将默认输出为70的RSI信号提升至80。

可行方案

以下提供两种实用的调整方式,均基于Pine Script实现:


方案1:直接按百分比缩放数值

适合需要整体放大/缩小指标数值的场景,操作简单直观。修改后的代码如下:

//@version=4
study(title="百分比调整版RSI", shorttitle="RSI (调整版)", format=format.price, precision=2, resolution="")
len = input(14, minval=1, title="周期长度")
src = input(close, "数据源", type = input.source)

// 核心调整参数:正数为放大,负数为缩小,输入百分比数值
adjust_percent = input.float(14.29, title="数值调整百分比(%)", minval=-100, maxval=100) / 100

// 计算原始RSI
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi_raw = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// 应用调整并限制数值在0-100区间内
rsi_adjusted = clamp(rsi_raw * (1 + adjust_percent), 0, 100)

// 绘制调整后的RSI曲线
plot(rsi_adjusted, "调整后RSI", color=color.white)

// 示例水平线:原70调整后为80,对应输入14.29%
hline(80, "超买线", color=color.red, linestyle=hline.style_solid)
hline(28.57, "超卖线", color=color.blue, linestyle=hline.style_solid)
hline(57.14, "中线", color=color.gray, linestyle=hline.style_solid)

说明:

  • 若要将原70的RSI值提升至80,计算调整比例为 (80/70)-1≈14.29%,直接在输入框填入14.29即可。
  • clamp() 函数确保调整后的数值始终保持在0-100的合理区间,避免异常值。

方案2:线性映射精准调整阈值

适合需要指定特定阈值映射关系的场景,比如保持超买超卖的相对区间比例。修改后的代码如下:

//@version=4
study(title="阈值映射版RSI", shorttitle="RSI (映射版)", format=format.price, precision=2, resolution="")
len = input(14, minval=1, title="周期长度")
src = input(close, "数据源", type = input.source)

// 自定义映射参数:设置原阈值和目标阈值
original_ob = input(70, title="原超买阈值")
target_ob = input(80, title="目标超买阈值")
original_os = input(30, title="原超卖阈值")
target_os = input(20, title="目标超卖阈值")

// 计算线性映射的斜率和截距
slope = (target_ob - target_os) / (original_ob - original_os)
intercept = target_ob - slope * original_ob

// 计算原始RSI
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi_raw = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// 应用线性映射并限制数值范围
rsi_adjusted = clamp(slope * rsi_raw + intercept, 0, 100)

// 绘制调整后的RSI曲线
plot(rsi_adjusted, "映射后RSI", color=color.white)

// 绘制目标水平线
hline(target_ob, "目标超买线", color=color.red, linestyle=hline.style_solid)
hline(target_os, "目标超卖线", color=color.blue, linestyle=hline.style_solid)
hline(slope * 50 + intercept, "中线", color=color.gray, linestyle=hline.style_solid)

说明:

  • 只需输入原指标的关键阈值(如原超买70)和想要的目标阈值(如80),代码会自动计算线性映射关系,保持区间内其他数值的相对比例。
  • 同样通过clamp()限制数值在0-100区间内。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:35:24