You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TradingView高时间框架RSI指标在低时间框架上的当前值显示问题

在TradingView Pine Script中保持60分钟RSI实时波动值持续显示的解决方案

我完全懂你这个头疼的问题——在5分钟时间框架上加载60分钟RSI时,实时波动的当前值总是刚显示几秒就消失,最后只剩最后一根K线收盘价对应的RSI数值。哪怕你明确想要这个重绘效果,就是搞不定它持续显示。其实这大概率是因为默认的指标逻辑只针对已闭合的K线更新,加上可能忽略了几个关键的参数或设置,下面给你几个可行的解决办法:

1. 用request.security开启实时重绘参数

TradingView的request.security函数默认不会主动更新更高时间框架的未闭合K线数据,你需要手动开启实时更新的参数。试试这段代码:

//@version=5
indicator("60min RSI (实时波动版)", overlay=false)

// 调用60分钟周期的RSI,开启重绘和实时数据同步
rsi_60min = request.security(
    syminfo.tickerid, 
    "60", 
    ta.rsi(close, 14), 
    gaps=barmerge.gaps_on, 
    lookahead=barmerge.lookahead_on
)

// 绘制RSI曲线
plot(rsi_60min, color=color.new(color.blue, 0), linewidth=2, title="60分钟RSI")

// 实时显示当前RSI数值的标签
var label rsi_current_label = label.new(
    bar_index, rsi_60min, "", 
    color=color.white, textcolor=color.black, 
    style=label.style_label_down, size=size.small
)
// 每一根bar更新时,同步更新标签的位置和文本
label.set_xy(rsi_current_label, bar_index, rsi_60min)
label.set_text(rsi_current_label, str.tostring(rsi_60min, "#.##"))

这里的lookahead=barmerge.lookahead_on是核心——它会让指标实时抓取60分钟K线的未闭合数据,实现你想要的重绘效果。同时用label组件实时更新数值,代替指标默认的静态数值显示,这样就能持续看到RSI的实时波动了。

2. 检查TradingView的指标重绘设置

有时候代码没问题,但指标的全局设置没开重绘权限:

  • 右键点击你添加的RSI指标 → 选择「指标设置」
  • 在弹出的窗口里,找到「允许重绘」(Allow Repainting)的选项并勾选
    这个开关没开的话,哪怕代码里写了重绘逻辑,也会被TradingView限制,导致实时值无法持续显示。

3. 别用仅针对闭合K线的判断逻辑

如果你之前的代码里加了barstate.isconfirmed或者barstate.islastconfirmedhistory这类判断,那只有当5分钟K线闭合时才会更新RSI,自然看不到实时波动。比如这种错误写法:

// 错误示例:只在K线闭合时计算RSI
if barstate.isconfirmed
    rsi_60min = request.security(syminfo.tickerid, "60", ta.rsi(close,14))

要去掉这类条件,让每一根实时更新的bar都重新计算最新的60分钟RSI值。

按照上面的方法调整后,你应该就能看到60分钟RSI的数值随着行情实时波动,并且持续显示在屏幕上了——和你上传的示例图效果一致。

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

火山引擎 最新活动