Pine Script问题:仅给最新K线按RSI设背景色,旧K线无法变白求助
Pine Script历史K线背景色不更新问题解决
问题根源
你遇到的情况是因为bgcolor需要给每根K线都明确分配颜色值,单独用barstate.islast is false设白色可能因为逻辑覆盖不完整,导致旧K线的颜色没被正确覆盖。
直接可用的解决方案代码
//@version=5 indicator("RSI Latest Bar Background", overlay=true) // 计算14周期RSI rsi_val = ta.rsi(close, 14) // 背景色逻辑:最新K线按RSI设色,其余全白 bgcolor(barstate.islast ? (rsi_val > 70 ? color.new(color.red, 80) : rsi_val < 30 ? color.new(color.green, 80) : na) : color.white)
代码细节说明
- 用三元运算符做分支判断:先确认是不是最新K线,是就根据RSI超买/超卖设对应半透明色,RSI正常区间就不显示背景;不是最新K线直接设白色。
- 这种写法确保每根K线的
bgcolor都被明确赋值,不会出现旧K线颜色残留的情况。 - 如果需要RSI正常区间也显示背景色,把
na换成你想要的颜色就行,比如color.new(color.blue, 90)。
内容的提问来源于stack exchange,提问作者Amit Poptani
相关产品推荐
相关产品推荐

