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

Pine Script多时间框架RSI值异常:切换图表周期数值变动

问题原因

你遇到的问题根源在于RSI的计算时机错误:你先把不同时间框架的收盘价拉到当前图表的每个bar中,再在当前时间框架下计算RSI。由于request.security会将目标时间框架的单条数据,重复填充到当前时间框架的所有对应bar里(比如日收盘价在小时图中会重复24次),用这些重复值计算出的RSI,和目标时间框架(日/小时图)上的真实RSI完全不符,且切换当前时间框架时,重复数据的数量变化,导致RSI值跟着改变。

解决方案

直接在request.security内部计算目标时间框架的RSI,这样获取到的就是对应时间框架下的真实RSI值,不会随当前图表时间框架变化。

修改后的代码
//@version=5
indicator("跨时间框架RSI", overlay=true)

// 直接在目标时间框架内计算RSI
daily_rsi = request.security(syminfo.tickerid, "D", ta.rsi(close, 14))
hourly_rsi = request.security(syminfo.tickerid, "60", ta.rsi(close, 14))

// 创建表格并显示数据
var myTable = table.new(position.bottom_right, 2, 5)
if barstate.islast
    table.cell(myTable, 0, 0, "RSI Daily", text_color=color.white)
    table.cell(myTable, 1, 0, str.tostring(daily_rsi, "#.##"), text_color=color.white)
    table.cell(myTable, 0, 1, "RSI Hourly", text_color=color.white)
    table.cell(myTable, 1, 1, str.tostring(hourly_rsi, "#.##"), text_color=color.white)
关键说明
  • request.security(syminfo.tickerid, "D", ta.rsi(close, 14)):这段代码会切换到日时间框架,计算该框架下的14周期RSI,然后将最新的RSI值返回到当前图表中,不会携带重复数据。
  • var关键字:确保表格只在脚本初始化时创建一次,避免每次bar都重复创建表格。
  • barstate.islast:仅在最后一个bar更新表格内容,减少资源消耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 03:07:10