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

请求协助:在RSI上穿/下穿区间时添加文字标注

解决Pine Script双RSI合并及交叉标注问题

核心思路

要实现双RSI合并+区间交叉文字标注,得先把交叉信号的触发逻辑找对——你之前修改的up是RSI计算的中间变量,和区间交叉信号没有直接关联,自然不会生效。正确的做法是:先算出两个RSI,再监测它们与目标区间的交叉关系,最后在信号触发点添加文字标注。

修改后的完整代码示例

//@version=5
indicator("双RSI合并带标注", overlay=false)

// 输入参数:两个RSI的自定义设置
rsiLength1 = input.int(14, title="RSI1周期")
rsiSource1 = input(close, title="RSI1数据源")
rsiLength2 = input.int(9, title="RSI2周期")
rsiSource2 = input(close, title="RSI2数据源")
// 区间阈值设置(可自定义)
overbought = input.int(70, title="超买阈值")
oversold = input.int(30, title="超卖阈值")

// 计算两个RSI的值
rsi1 = ta.rsi(rsiSource1, rsiLength1)
rsi2 = ta.rsi(rsiSource2, rsiLength2)

// 合并显示:同时展示两条RSI线+合并均值线(可按需调整)
plot(rsi1, color=color.blue, title="RSI1")
plot(rsi2, color=color.red, title="RSI2")
plot((rsi1+rsi2)/2, color=color.green, title="合并RSI", linewidth=2)

// 检测交叉信号
// RSI上穿超卖区间(上行趋势信号)
crossOversold1 = ta.crossover(rsi1, oversold)
crossOversold2 = ta.crossover(rsi2, oversold)
crossOversoldMerge = ta.crossover((rsi1+rsi2)/2, oversold)

// RSI下穿超买区间(下行趋势信号)
crossOverbought1 = ta.crossunder(rsi1, overbought)
crossOverbought2 = ta.crossunder(rsi2, overbought)
crossOverboughtMerge = ta.crossunder((rsi1+rsi2)/2, overbought)

// 添加文字标注(调整垂直偏移避免重叠)
// RSI1的信号标注
if crossOversold1
    label.new(bar_index, oversold, "RSI1上穿超卖", color=color.green, textcolor=color.white, style=label.style_label_up)
if crossOverbought1
    label.new(bar_index, overbought, "RSI1下穿超买", color=color.red, textcolor=color.white, style=label.style_label_down)

// RSI2的信号标注
if crossOversold2
    label.new(bar_index, oversold-3, "RSI2上穿超卖", color=color.green, textcolor=color.white, style=label.style_label_up)
if crossOverbought2
    label.new(bar_index, overbought+3, "RSI2下穿超买", color=color.red, textcolor=color.white, style=label.style_label_down)

// 合并RSI的信号标注
if crossOversoldMerge
    label.new(bar_index, oversold-6, "合并RSI上穿超卖", color=color.green, textcolor=color.white, style=label.style_label_up)
if crossOverboughtMerge
    label.new(bar_index, overbought+6, "合并RSI下穿超买", color=color.red, textcolor=color.white, style=label.style_label_down)

// 绘制区间参考线
hline(overbought, "超买线", color=color.gray)
hline(oversold, "超卖线", color=color.gray)

关键说明

  1. 信号触发逻辑:用ta.crossover(上穿)和ta.crossunder(下穿)函数直接判断RSI值与区间阈值的交叉,这才是触发标注的正确位置。
  2. 标注优化:给不同RSI的标注设置了垂直偏移(如oversold-3),避免多个标注重叠遮挡。
  3. 合并方式可选:代码提供了单独显示两条RSI线、合并均值线两种展示方式,可根据需求删减调整。
  4. 原修改无效原因:up = ta.rma(...)是RSI内部计算上涨动能的中间步骤,这个变量的变化和区间交叉没有直接关联,所以在该位置添加逻辑无法触发标注。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:47:03