如何为Supertrend指标添加input.bool开关控制显示
解决方案
要实现通过input.bool开关控制整个指标的显示,只需在所有绘图相关逻辑中加入开关变量的判断即可,具体修改如下:
修改后的完整代码
indicator("Volatility Trend", overlay=true) [supertrend, direction] = ta.supertrend(3, 10) TrendVolatility = input.bool(false, "Trend Volatility") bodyMiddle = plot((open + close) / 2, editable=false, display=display.none) # 加入TrendVolatility开关控制上升趋势线显示 upTrend = plot(TrendVolatility and direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr, editable = false) # 加入TrendVolatility开关控制下降趋势线显示 downTrend = plot(TrendVolatility and direction >= 0 ? supertrend : na, "Down Trend", color = color.red, style=plot.style_linebr, editable = false) # 加入TrendVolatility开关控制填充效果显示 fill(TrendVolatility ? bodyMiddle : na, upTrend, color.new(color.green, 90), fillgaps=false, editable = false) fill(TrendVolatility ? bodyMiddle : na, downTrend, color.new(color.red, 90), fillgaps=false, editable = false)
修改说明
- 趋势线控制:在原有的趋势判断条件(
direction < 0/direction >= 0)前,增加TrendVolatility and逻辑。当开关关闭时,表达式结果为false,会返回na,从而隐藏对应的趋势线。 - 填充效果控制:在
fill函数的第一个参数(bodyMiddle)中加入开关判断,当开关关闭时传入na,此时填充函数因参数无效而不渲染填充效果。
这样就能通过输入菜单的"Trend Volatility"开关,一键开启或关闭整个指标的所有显示元素。
内容的提问来源于stack exchange,提问作者dcmc830
相关产品推荐
相关产品推荐

