Pine脚本优化需求:K线高低点着色信号延续
TradingView K线颜色延续逻辑的Pine脚本实现
原脚本仅在收盘价突破前K线高点/低点时切换红绿柱,其他情况显示无颜色(na)。现在需要实现:
- 无触发信号时延续上一次有效信号的颜色
- 绿柱状态持续到收盘价跌破前K线低点时切换为红柱,反之亦然
修改后的脚本代码
//@version=5 indicator("High-Low Bar Coloring (Persistent)", overlay=true) prev_high = high[1] prev_low = low[1] // 定义持久化状态变量,保存当前颜色状态 var color current_color = na // 更新颜色状态:突破前高设绿,跌破前低设红,否则保持原状态 if close > prev_high current_color := color.new(color.green, 0) elif close < prev_low current_color := color.new(color.red, 0) // 应用颜色,初始无信号时默认用浅灰色(可自行修改默认色) barcolor(current_color != na ? current_color : color.silver)
关键逻辑说明
- 用
var关键字定义current_color,确保变量值在整个脚本运行周期内持久保留,不会每根K线重置 - 仅在触发突破前高或跌破前低的条件时更新颜色,其余周期保持上一次的颜色状态
- 初始无信号时可自定义默认颜色(示例中用
color.silver),避免第一根K线无颜色显示
内容的提问来源于stack exchange,提问作者Asif Mulani
相关产品推荐
相关产品推荐

