条件触发 UNTIL 另一个触发时的颜色背景
colour background when condition triggers UNTIL another triggers
我正在指标上绘制绿点。当所有点都变成绿色时,我希望背景变成绿色。背景应保持绿色(因此 1 个或多个点可以变成红色),直到所有点都变成红色。然后我想让背景变成红色,直到所有的点再次变成绿色。
现在我有这个:
bull = (ha_diff==2 and ha_diff2==2 and ha_diff3==2 and ha_diff4==2 and ha_diff5==2 and ha_diff6==2 and ha_diff7==2 and ha_diff8==2 )
bear = (ha_diff==1 and ha_diff2==1 and ha_diff3==1 and ha_diff4==1 and ha_diff5==1 and ha_diff6==1 and ha_diff7==1 and ha_diff8==1 )
plot(15, title="TF1", color=iff(ha_diff==1, red, iff(ha_diff==2, green, white)), style=circles, linewidth=5, join=true)
plot(14, title="TF2", color=iff(ha_diff2==1, red, iff(ha_diff2==2, green, white)), style=circles, linewidth=5, join=true)
plot(13, title="TF3", color=iff(ha_diff3==1, red, iff(ha_diff3==2, green, white)), style=circles, linewidth=5, join=true)
plot(12, title="TF4", color=iff(ha_diff4==1, red, iff(ha_diff4==2, green, white)), style=circles, linewidth=5, join=true)
plot(11, title="TF5", color=iff(ha_diff5==1, red, iff(ha_diff5==2, green, white)), style=circles, linewidth=5, join=true)
plot(10, title="TF6", color=iff(ha_diff6==1, red, iff(ha_diff6==2, green, white)), style=circles, linewidth=5, join=true)
plot(9, title="TF7", color=iff(ha_diff7==1, red, iff(ha_diff7==2, green, white)), style=circles, linewidth=5, join=true)
plot(8, title="TF8", color=iff(ha_diff8==1, red, iff(ha_diff8==2, green, white)), style=circles, linewidth=5, join=true)
// Colour background
backgroundColour = (bull) ? green : red
bgcolor(color=backgroundColour, transp=40,
title="Conditionally coloured background")
但这只是在所有点都为绿色时才将背景涂成绿色。一旦一个点变红,它就会涂成红色,并且应该继续涂成绿色,直到所有点都变成红色...
有人可以帮忙吗?
如下例所示,仅当bull/bear信号触发时才为backgroundColour变量分配颜色,否则使用之前的值:
// Colour background
backgroundColour = white
backgroundColour := bull ? green : bear ? red : backgroundColour[1]
我正在指标上绘制绿点。当所有点都变成绿色时,我希望背景变成绿色。背景应保持绿色(因此 1 个或多个点可以变成红色),直到所有点都变成红色。然后我想让背景变成红色,直到所有的点再次变成绿色。
现在我有这个:
bull = (ha_diff==2 and ha_diff2==2 and ha_diff3==2 and ha_diff4==2 and ha_diff5==2 and ha_diff6==2 and ha_diff7==2 and ha_diff8==2 )
bear = (ha_diff==1 and ha_diff2==1 and ha_diff3==1 and ha_diff4==1 and ha_diff5==1 and ha_diff6==1 and ha_diff7==1 and ha_diff8==1 )
plot(15, title="TF1", color=iff(ha_diff==1, red, iff(ha_diff==2, green, white)), style=circles, linewidth=5, join=true)
plot(14, title="TF2", color=iff(ha_diff2==1, red, iff(ha_diff2==2, green, white)), style=circles, linewidth=5, join=true)
plot(13, title="TF3", color=iff(ha_diff3==1, red, iff(ha_diff3==2, green, white)), style=circles, linewidth=5, join=true)
plot(12, title="TF4", color=iff(ha_diff4==1, red, iff(ha_diff4==2, green, white)), style=circles, linewidth=5, join=true)
plot(11, title="TF5", color=iff(ha_diff5==1, red, iff(ha_diff5==2, green, white)), style=circles, linewidth=5, join=true)
plot(10, title="TF6", color=iff(ha_diff6==1, red, iff(ha_diff6==2, green, white)), style=circles, linewidth=5, join=true)
plot(9, title="TF7", color=iff(ha_diff7==1, red, iff(ha_diff7==2, green, white)), style=circles, linewidth=5, join=true)
plot(8, title="TF8", color=iff(ha_diff8==1, red, iff(ha_diff8==2, green, white)), style=circles, linewidth=5, join=true)
// Colour background
backgroundColour = (bull) ? green : red
bgcolor(color=backgroundColour, transp=40,
title="Conditionally coloured background")
但这只是在所有点都为绿色时才将背景涂成绿色。一旦一个点变红,它就会涂成红色,并且应该继续涂成绿色,直到所有点都变成红色...
有人可以帮忙吗?
如下例所示,仅当bull/bear信号触发时才为backgroundColour变量分配颜色,否则使用之前的值:
// Colour background
backgroundColour = white
backgroundColour := bull ? green : bear ? red : backgroundColour[1]