为何request.security_lower_tf在TradingView复盘模式下失效?
15分钟框架复盘模式下RSI显示0的修复方案
问题根源
你使用的request.security_lower_tf会返回低周期数据组成的数组,但在复盘模式下,历史K线对应的低周期数据数组经常无法正确初始化,导致数组长度为0,触发代码里的0 fallback逻辑,最终指标全显示0。
最简单的修复方法
既然你只需要10分钟RSI的最新值,完全不用依赖数组,直接用request.security请求对应周期的RSI即可,实时和复盘模式都能稳定运行:
//@version=5 indicator("My script", overlay = false) // 直接请求10分钟周期的RSI值 ten_min_rsi = request.security(syminfo.tickerid, "10", ta.rsi(close, 14)) plot(ten_min_rsi, color=color.aqua, linewidth=2)
需获取低周期数组的场景处理
如果确实需要获取当前15分钟K线内的所有10分钟RSI数据(比如做区间统计),可以改用request.security_all_tf,同时优化空数组的 fallback 逻辑,用之前的有效值替代0,避免指标断层:
//@version=5 indicator("My script", overlay = false) // 请求10分钟周期的RSI数组 array_data = request.security_all_tf(syminfo.tickerid, "10", ta.rsi(close, 14)) // 用变量保存上一次的有效RSI值,数组为空时复用 var float last_valid_rsi = na current_rsi = array.size(array_data) > 0 ? array.last(array_data) : last_valid_rsi last_valid_rsi := current_rsi plot(current_rsi, color=color.aqua, linewidth=2)
内容的提问来源于stack exchange,提问作者sey eeet
相关产品推荐
相关产品推荐

