如何在Plotcandle函数中使用布尔值实现条件绘图?
问题
我现在用这段代码绘制蜡烛图:
plotcandle(open_c, open_c, close_c, close_c, title='Candles', color=open_c < close_c ? color.new(#003c7f,50) : color.new(#991722,50), wickcolor=na, bordercolor=open_c < close_c ? color.new(#003c7f,50) : color.new(#991722,50))
我想通过这个布尔输入变量来控制蜡烛图的显示:
candle_bool = input.bool(defval=true, title='Candles')
就像plot函数里用plot(candle_bool ? open_c : na [.....])这种条件绘图的方式,请问怎么在plotcandle里实现?
解决方案
在Pine Script里,plotcandle没法直接像plot那样只给单个参数传na就隐藏整个蜡烛,但可以通过给所有核心数据参数加上条件判断,开关关闭时返回na来实现隐藏效果。
修改后的完整代码如下:
// 定义控制蜡烛显示的开关 candle_bool = input.bool(defval=true, title='Candles') // 根据开关状态绘制或隐藏蜡烛图 plotcandle( candle_bool ? open_c : na, candle_bool ? open_c : na, candle_bool ? close_c : na, candle_bool ? close_c : na, title='Candles', color=candle_bool ? (open_c < close_c ? color.new(#003c7f,50) : color.new(#991722,50)) : na, wickcolor=na, bordercolor=candle_bool ? (open_c < close_c ? color.new(#003c7f,50) : color.new(#991722,50)) : na )
关键说明
- 给
plotcandle的前四个必填参数(开盘价、最高价、最低价、收盘价)都加上candle_bool ? 原变量 : na的判断,当开关关闭时,这些参数返回na,蜡烛就会被隐藏。 - 同时给
color和bordercolor也加上同样的条件判断,避免开关关闭后出现不必要的颜色残留。
内容的提问来源于stack exchange,提问作者Bruce Ecurb
相关产品推荐
相关产品推荐

