Pine Script按多条件满足数量设置K线柱色的实现方法咨询
Pine Script 按满足条件数量设置K线柱色实现方案
实现逻辑
- 利用Pine Script中布尔值
true等价于1、false等价于0的特性,直接对10个买入条件求和,即可得到当前生效的条件总数量 - 通过
switch分支判断总数量,匹配对应需要的柱色 - 调用
barcolor()函数完成柱色渲染
完整示例代码
//@version=5 indicator("按买入条件数量着色", overlay = true) // 此处替换为你自己的Buy1~Buy10实际触发条件 Buy1 = ta.crossover(ta.close, ta.sma(close, 5)) Buy2 = ta.crossover(ta.rsi(close, 14), 30) Buy3 = ta.macd(close, 12, 26, 9) > 0 Buy4 = ta.volume > ta.sma(volume, 20) * 1.5 Buy5 = ta.close > ta.highest(high, 20)[1] Buy6 = ta.crossover(ta.stoch(close, high, low, 14), 20) Buy7 = ta.obv > ta.sma(ta.obv, 20) Buy8 = ta.close > ta.open Buy9 = ta.low > ta.low[1] Buy10 = ta.sma(close, 5) > ta.sma(close, 20) // 统计满足的条件总数 valid_buy_count = Buy1 + Buy2 + Buy3 + Buy4 + Buy5 + Buy6 + Buy7 + Buy8 + Buy9 + Buy10 // 按数量匹配柱色,可自行增减分支补充其他数量对应的颜色 bar_color = switch valid_buy_count == 1 => color.red valid_buy_count == 3 => color.blue valid_buy_count == 9 => color.green => na // 其余情况保持K线默认颜色 // 渲染K线柱色 barcolor(bar_color)
补充说明
- 如果你使用的是Pine Script v4版本,将
switch分支替换为嵌套三元表达式即可,逻辑完全一致:
bar_color = valid_buy_count == 1 ? color.red : valid_buy_count == 3 ? color.blue : valid_buy_count == 9 ? color.green : na
- 如果需要给其他满足数量设置对应颜色,直接在
switch分支中新增对应规则即可。
内容的提问来源于stack exchange,提问作者Müslüm Horzum
相关产品推荐
相关产品推荐

