如何在Pine Script的Stochastic RSI指标中设置高低区间两种不同背景色
实现方案
你只需要调整原有代码中的背景填充逻辑即可,具体修改思路和完整代码如下:
核心改动点
- 新增0和100两条隐藏的水平参考线,作为填充的上下边界(Stochastic RSI的取值范围固定为0-100)
- 删除原本覆盖20-80全区间的填充配置
- 分别为80线以上区间、20线以下区间设置独立的背景色,中间20-80区间可按需设置为原有浅蓝填充或完全透明
完整修改后代码
study(title="Stochastic RSI 50", shorttitle="Stoch RSI 50", format=format.price, precision=2, resolution="") smoothK = input(3, "K", minval=1) smoothD = input(3, "D", minval=1) lengthRSI = input(14, "RSI Length", minval=1) lengthStoch = input(14, "Stochastic Length", minval=1) src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) plot(k, "K", color=#2962FF) plot(d, "D", color=#FF6D00) h0 = hline(80, "Upper Band", color=#787B86) h1 = hline(20, "Lower Band", color=#787B86) hm = hline(50, "50 band", color=#787B86) // 新增上下边界参考线,设置为透明不显示 h_top = hline(100, "100边界", color=color.new(color.gray, 100)) h_bottom = hline(0, "0边界", color=color.new(color.gray, 100)) // 80线以上填充红色系背景(超买区),透明度可按需调整最后一位参数 fill(h0, h_top, color=color.rgb(255, 82, 82, 90), title="超买区背景") // 20线以下填充绿色系背景(超卖区) fill(h1, h_bottom, color=color.rgb(67, 160, 71, 90), title="超卖区背景") // 中间20-80区间保留原有浅蓝背景,不需要的话可以注释掉这行 fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="中性区背景")
自定义调整说明
如果需要修改背景色,直接调整color.rgb()里的数值即可,最后一位是透明度参数,取值范围0-100,数值越大越透明。
如果你需要的是只有当K/D值高于80/低于20时才填充对应背景,可以在fill函数中加入title参数后的condition条件判断即可。
内容的提问来源于stack exchange,提问作者Wags
相关产品推荐
相关产品推荐

