如何在满足指定数值差条件时填充DI+与DI-之间的区域
Pine Script 实现差值条件填充DI+与DI-区域
你只需要在填充逻辑里加入差值判断条件,让代码仅在DI+和DI-的数值差超过20时才绘制填充,否则不显示。以下是两种常见需求的实现方式:
方式一:绝对值差值大于20时填充(不管谁大谁小)
这是最常用的“数值差大于20”场景,只要两者差距超过20就触发填充:
p1 = plot(plus, color = color.gray) p2 = plot(minus, color = color.yellow) // 计算DI+与DI-的绝对值差值 diff = abs(plus - minus) // 仅当差值>20时填充,否则不显示填充 fill(p1, p2, color = diff > 20 ? (plus > minus ? color.lime : color.red) : na)
代码说明:
abs(plus - minus):计算两者差值的绝对值,确保不管DI+还是DI-更大,只要差距够就触发填充- 嵌套三元运算符:先判断差值是否达标,达标后再根据谁大谁小选择填充颜色;不达标就返回
na(Pine Script中na代表不绘制该元素)
方式二:单向差值大于20时填充(比如仅DI+比DI-大20才填绿,反之填红)
如果你的需求是只有DI+领先DI-超过20才填绿色,DI-领先DI+超过20才填红色,可以用这个版本:
p1 = plot(plus, color = color.gray) p2 = plot(minus, color = color.yellow) // 分别判断单向差值条件,不满足则不填充 fill(p1, p2, color = (plus - minus > 20) ? color.lime : (minus - plus > 20) ? color.red : na)
内容的提问来源于stack exchange,提问作者ChrischnLOK
相关产品推荐
相关产品推荐

