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

如何在RSI上穿70后3根K线过后高亮其超买区域?

RSI指标延迟高亮需求

RSI指标参考图

希望高亮RSI指标中数值超过70的区域,但高亮需在RSI上穿70后3根K线走完才开始。已知如何在RSI超过70时直接高亮,但无法实现延迟3根K线的高亮效果。

当前代码

//@version=5
indicator(title="Relative Strength Index", shorttitle="RSI")

rsi = ta.rsi(close,14)
l_60 = 60
l_40 = 40
ob = rsi > 60 ? rsi : l_60
os = rsi < 40 ? rsi : l_40

p1 = plot(series=l_60, color=color.new(#FF5252,20), linewidth=1)
p2 = plot(series=ob, color=color.new(#FF5252,20), linewidth=1)
p3 = plot(series=l_40, color=color.new(#4CAF50,20), linewidth=1)
p4 = plot(series=os, color=color.new(#4CAF50,20), linewidth=1)
fill(p1, p2, color=color.new(#4CAF50,10))
fill(p3, p4, color=color.new(#FF5252,10))
plot(rsi, "RSI", color=#7E57C2)

补充需求

如果上述延迟高亮区域的需求无法实现,使用矩形框是否可行?不清楚如何用Pine Script绘制矩形框,请问如何绘制从RSI上穿70后第3根K线开始的矩形框?


解决方案1:延迟填充高亮区域

通过检测RSI上穿信号并计数K线数量,实现延迟3根K线后的高亮效果,修改后的代码如下:

//@version=5
indicator(title="RSI 延迟高亮", shorttitle="RSI Delay Highlight")

rsi = ta.rsi(close, 14)
overbought_level = 70

// 检测RSI上穿70的信号
crossover_rsi_70 = ta.crossover(rsi, overbought_level)
// 记录上穿信号后的K线数量
bars_since_crossover = ta.barssince(crossover_rsi_70)
// 延迟3根K线后,且当前RSI仍在70上方时触发高亮
delay_trigger = bars_since_crossover >= 3 and rsi > overbought_level

// 定义用于填充的上下线
ob_upper = delay_trigger ? rsi : overbought_level
ob_lower = overbought_level

// 绘制参考线和填充区域
p_upper = plot(ob_upper, color=color.new(#FF5252, 20), linewidth=1)
p_lower = plot(ob_lower, color=color.new(#FF5252, 20), linewidth=1)
fill(p_upper, p_lower, color=color.new(#FF5252, 10))

// 绘制RSI主线和超买线
plot(rsi, "RSI", color=#7E57C2)
hline(overbought_level, "超买线", color=color.red)

解决方案2:绘制延迟触发的矩形框

使用box.new()函数实现延迟矩形高亮,代码如下:

//@version=5
indicator(title="RSI 延迟矩形高亮", shorttitle="RSI Delay Box")

rsi = ta.rsi(close, 14)
overbought_level = 70

// 检测RSI上穿70的信号
crossover_rsi_70 = ta.crossover(rsi, overbought_level)
// 记录上穿信号的K线索引
var int crossover_bar_index = na
if crossover_rsi_70
    crossover_bar_index = bar_index

// 延迟3根K线后创建矩形
if bar_index == crossover_bar_index + 3
    highlight_box = box.new(left=bar_index, top=rsi, right=bar_index, bottom=overbought_level, 
                           color=color.new(#FF5252, 80), border_color=color.red)
// 当RSI仍在70上方时,扩展矩形到当前K线
if rsi > overbought_level and not na(crossover_bar_index) and bar_index > crossover_bar_index + 3
    box.set_right(highlight_box, bar_index)
// 当RSI下穿70时,重置信号标记
if ta.crossunder(rsi, overbought_level)
    crossover_bar_index := na

// 绘制RSI主线和超买线
plot(rsi, "RSI", color=#7E57C2)
hline(overbought_level, "超买线", color=color.red)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:35:20